{"metadata": {"vulnerability": "CVE-2026-45409", "count": 1358, "kinds": {"milestone": 362, "sighting": 5, "kev": 0, "other": 991}}, "data": [{"timestamp": "2024-03-21T00:00:00Z", "date_only": false, "value": "2024-03-21T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2024-03-21T00:00:00Z", "date_only": false, "value": "2024-03-21T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2024-05-08T00:00:00Z", "date_only": false, "value": "2024-05-08T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2024-05-14T00:00:00Z", "date_only": false, "value": "2024-05-14T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2025-05-27T00:00:00Z", "date_only": false, "value": "2025-05-27T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.1.release_date", "linked_record": true}, {"timestamp": "2025-05-27T13:50:20.148Z", "date_only": false, "value": "2025-05-27T13:50:20.148000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.1.discovery_date", "linked_record": true}, {"timestamp": "2025-06-16T00:00:00Z", "date_only": false, "value": "2025-06-16T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2025-06-16T05:33:22.955Z", "date_only": false, "value": "2025-06-16T05:33:22.955000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2025-08-04T00:00:00Z", "date_only": false, "value": "2025-08-04T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.4.release_date", "linked_record": true}, {"timestamp": "2025-09-15T00:00:00Z", "date_only": false, "value": "2025-09-15T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.10.release_date", "linked_record": true}, {"timestamp": "2025-09-15T03:00:59.775Z", "date_only": false, "value": "2025-09-15T03:00:59.775098+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.10.discovery_date", "linked_record": true}, {"timestamp": "2025-09-24T12:46:50.095Z", "date_only": false, "value": "2025-09-24T12:46:50.095000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.4.discovery_date", "linked_record": true}, {"timestamp": "2025-10-31T16:41:34.983Z", "date_only": false, "value": "2025-10-31T16:41:34.983000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2025-10-31T17:01:47.052Z", "date_only": false, "value": "2025-10-31T17:01:47.052517+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2025-11-13T15:32:44.634Z", "date_only": false, "value": "2025-11-13T15:32:44.634000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2025-11-13T16:01:24.744Z", "date_only": false, "value": "2025-11-13T16:01:24.744054+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2025-12-01T18:13:32.739Z", "date_only": false, "value": "2025-12-01T18:13:32.739000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.6.release_date", "linked_record": true}, {"timestamp": "2025-12-01T19:01:32.492Z", "date_only": false, "value": "2025-12-01T19:01:32.492656+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.6.discovery_date", "linked_record": true}, {"timestamp": "2025-12-02T18:54:10.166Z", "date_only": false, "value": "2025-12-02T18:54:10.166000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.1.release_date", "linked_record": true}, {"timestamp": "2025-12-02T20:01:45.330Z", "date_only": false, "value": "2025-12-02T20:01:45.330964+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.1.discovery_date", "linked_record": true}, {"timestamp": "2025-12-05T00:00:00Z", "date_only": false, "value": "2025-12-05T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.7.release_date", "linked_record": true}, {"timestamp": "2025-12-05T08:35:24.744Z", "date_only": false, "value": "2025-12-05T08:35:24.744000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.7.discovery_date", "linked_record": true}, {"timestamp": "2025-12-11T00:00:00Z", "date_only": false, "value": "2025-12-11T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.8.release_date", "linked_record": true}, {"timestamp": "2025-12-11T06:22:59.701Z", "date_only": false, "value": "2025-12-11T06:22:59.701000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.8.discovery_date", "linked_record": true}, {"timestamp": "2026-01-07T21:14:05.223Z", "date_only": false, "value": "2026-01-07T21:14:05.223000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.5.release_date", "linked_record": true}, {"timestamp": "2026-01-07T22:01:02.206Z", "date_only": false, "value": "2026-01-07T22:01:02.206250+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.5.discovery_date", "linked_record": true}, {"timestamp": "2026-01-10T02:39:41.078Z", "date_only": false, "value": "2026-01-10T02:39:41.078000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2026-01-10T04:01:28.174Z", "date_only": false, "value": "2026-01-10T04:01:28.174269+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2026-01-14T19:07:13.745Z", "date_only": false, "value": "2026-01-14T19:07:13.745000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.20.release_date", "linked_record": true}, {"timestamp": "2026-01-14T20:01:00.899Z", "date_only": false, "value": "2026-01-14T20:01:00.899462+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.20.discovery_date", "linked_record": true}, {"timestamp": "2026-01-20T21:26:15.274Z", "date_only": false, "value": "2026-01-20T21:26:15.274000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.12.release_date", "linked_record": true}, {"timestamp": "2026-01-20T21:35:13.865Z", "date_only": false, "value": "2026-01-20T21:35:13.865000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.9.release_date", "linked_record": true}, {"timestamp": "2026-01-20T21:52:33.925Z", "date_only": false, "value": "2026-01-20T21:52:33.925000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.11.release_date", "linked_record": true}, {"timestamp": "2026-01-20T22:01:20.971Z", "date_only": false, "value": "2026-01-20T22:01:20.971828+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.9.discovery_date", "linked_record": true}, {"timestamp": "2026-01-20T22:01:26.694Z", "date_only": false, "value": "2026-01-20T22:01:26.694713+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.12.discovery_date", "linked_record": true}, {"timestamp": "2026-01-20T22:02:15.663Z", "date_only": false, "value": "2026-01-20T22:02:15.663936+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.11.discovery_date", "linked_record": true}, {"timestamp": "2026-01-28T19:30:31.215Z", "date_only": false, "value": "2026-01-28T19:30:31.215000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2026-01-28T20:01:42.791Z", "date_only": false, "value": "2026-01-28T20:01:42.791305+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2026-02-06T08:08:00Z", "date_only": false, "value": "2026-02-06T08:08:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.15.release_date", "linked_record": true}, {"timestamp": "2026-02-06T12:02:49.002Z", "date_only": false, "value": "2026-02-06T12:02:49.002000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.15.discovery_date", "linked_record": true}, {"timestamp": "2026-03-04T22:10:43.297Z", "date_only": false, "value": "2026-03-04T22:10:43.297000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.16.release_date", "linked_record": true}, {"timestamp": "2026-03-04T23:01:09.396Z", "date_only": false, "value": "2026-03-04T23:01:09.396553+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.16.discovery_date", "linked_record": true}, {"timestamp": "2026-03-09T13:41:32.810Z", "date_only": false, "value": "2026-03-09T13:41:32.810000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.19.discovery_date", "linked_record": true}, {"timestamp": "2026-03-09T14:02:09.783Z", "date_only": false, "value": "2026-03-09T14:02:09.783000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.20.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T10:08:52.431Z", "date_only": false, "value": "2026-03-11T10:08:52.431000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.14.release_date", "linked_record": true}, {"timestamp": "2026-03-11T10:08:52.431Z", "date_only": false, "value": "2026-03-11T10:08:52.431000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.1.release_date", "linked_record": true}, {"timestamp": "2026-03-11T10:08:52.431Z", "date_only": false, "value": "2026-03-11T10:08:52.431000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2026-03-11T10:09:08.746Z", "date_only": false, "value": "2026-03-11T10:09:08.746000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.18.release_date", "linked_record": true}, {"timestamp": "2026-03-11T10:09:08.746Z", "date_only": false, "value": "2026-03-11T10:09:08.746000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2026-03-11T10:09:08.746Z", "date_only": false, "value": "2026-03-11T10:09:08.746000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.1.release_date", "linked_record": true}, {"timestamp": "2026-03-11T11:00:54.752Z", "date_only": false, "value": "2026-03-11T11:00:54.752485+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.14.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T11:00:54.752Z", "date_only": false, "value": "2026-03-11T11:00:54.752485+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.1.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T11:00:54.752Z", "date_only": false, "value": "2026-03-11T11:00:54.752485+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T11:01:01.429Z", "date_only": false, "value": "2026-03-11T11:01:01.429907+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.18.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T11:01:01.429Z", "date_only": false, "value": "2026-03-11T11:01:01.429907+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2026-03-11T11:01:01.429Z", "date_only": false, "value": "2026-03-11T11:01:01.429907+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.1.discovery_date", "linked_record": true}, {"timestamp": "2026-03-12T19:56:55.092Z", "date_only": false, "value": "2026-03-12T19:56:55.092000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.4.release_date", "linked_record": true}, {"timestamp": "2026-03-12T20:08:05.950Z", "date_only": false, "value": "2026-03-12T20:08:05.950000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.5.release_date", "linked_record": true}, {"timestamp": "2026-03-12T20:17:18.984Z", "date_only": false, "value": "2026-03-12T20:17:18.984000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.6.release_date", "linked_record": true}, {"timestamp": "2026-03-12T20:27:05.600Z", "date_only": false, "value": "2026-03-12T20:27:05.600000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.7.release_date", "linked_record": true}, {"timestamp": "2026-03-12T21:01:21.390Z", "date_only": false, "value": "2026-03-12T21:01:21.390673+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.6.discovery_date", "linked_record": true}, {"timestamp": "2026-03-12T21:01:25.538Z", "date_only": false, "value": "2026-03-12T21:01:25.538271+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.5.discovery_date", "linked_record": true}, {"timestamp": "2026-03-12T21:01:29.187Z", "date_only": false, "value": "2026-03-12T21:01:29.187989+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.7.discovery_date", "linked_record": true}, {"timestamp": "2026-03-12T21:01:33.639Z", "date_only": false, "value": "2026-03-12T21:01:33.639277+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.4.discovery_date", "linked_record": true}, {"timestamp": "2026-03-16T17:37:31.344Z", "date_only": false, "value": "2026-03-16T17:37:31.344000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.17.release_date", "linked_record": true}, {"timestamp": "2026-03-16T17:52:26.639Z", "date_only": false, "value": "2026-03-16T17:52:26.639000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.22.release_date", "linked_record": true}, {"timestamp": "2026-03-16T18:02:25.997Z", "date_only": false, "value": "2026-03-16T18:02:25.997880+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.17.discovery_date", "linked_record": true}, {"timestamp": "2026-03-16T19:01:54.161Z", "date_only": false, "value": "2026-03-16T19:01:54.161187+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.22.discovery_date", "linked_record": true}, {"timestamp": "2026-03-20T19:59:00.427Z", "date_only": false, "value": "2026-03-20T19:59:00.427000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.23.release_date", "linked_record": true}, {"timestamp": "2026-03-20T19:59:06.064Z", "date_only": false, "value": "2026-03-20T19:59:06.064000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.24.release_date", "linked_record": true}, {"timestamp": "2026-03-20T21:01:45.993Z", "date_only": false, "value": "2026-03-20T21:01:45.993907+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.23.discovery_date", "linked_record": true}, {"timestamp": "2026-03-20T21:02:16.458Z", "date_only": false, "value": "2026-03-20T21:02:16.458842+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.24.discovery_date", "linked_record": true}, {"timestamp": "2026-03-20T22:23:32.147Z", "date_only": false, "value": "2026-03-20T22:23:32.147000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.22.release_date", "linked_record": true}, {"timestamp": "2026-03-20T23:02:27.802Z", "date_only": false, "value": "2026-03-20T23:02:27.802640+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.22.discovery_date", "linked_record": true}, {"timestamp": "2026-03-23T21:03:56.120Z", "date_only": false, "value": "2026-03-23T21:03:56.120000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.51.release_date", "linked_record": true}, {"timestamp": "2026-03-23T22:01:54.593Z", "date_only": false, "value": "2026-03-23T22:01:54.593547+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.51.discovery_date", "linked_record": true}, {"timestamp": "2026-03-24T05:35:59.740Z", "date_only": false, "value": "2026-03-24T05:35:59.740000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.53.discovery_date", "linked_record": true}, {"timestamp": "2026-03-24T05:38:09.899Z", "date_only": false, "value": "2026-03-24T05:38:09.899000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.54.discovery_date", "linked_record": true}, {"timestamp": "2026-03-24T19:35:47.908Z", "date_only": false, "value": "2026-03-24T19:35:47.908000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.23.release_date", "linked_record": true}, {"timestamp": "2026-03-24T20:02:32.870Z", "date_only": false, "value": "2026-03-24T20:02:32.870828+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.23.discovery_date", "linked_record": true}, {"timestamp": "2026-03-25T02:59:10.179Z", "date_only": false, "value": "2026-03-25T02:59:10.179000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.52.discovery_date", "linked_record": true}, {"timestamp": "2026-03-25T17:02:48.402Z", "date_only": false, "value": "2026-03-25T17:02:48.402000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.21.release_date", "linked_record": true}, {"timestamp": "2026-03-25T18:01:56.017Z", "date_only": false, "value": "2026-03-25T18:01:56.017766+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.21.discovery_date", "linked_record": true}, {"timestamp": "2026-03-26T00:00:00Z", "date_only": false, "value": "2026-03-26T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.106.release_date", "linked_record": true}, {"timestamp": "2026-03-26T00:00:00Z", "date_only": false, "value": "2026-03-26T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.22.release_date", "linked_record": true}, {"timestamp": "2026-03-26T00:00:00Z", "date_only": false, "value": "2026-03-26T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.21.release_date", "linked_record": true}, {"timestamp": "2026-03-26T06:56:21.213Z", "date_only": false, "value": "2026-03-26T06:56:21.213270+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.25.discovery_date", "linked_record": true}, {"timestamp": "2026-03-26T21:20:48.191Z", "date_only": false, "value": "2026-03-26T21:20:48.191000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.24.release_date", "linked_record": true}, {"timestamp": "2026-03-26T21:39:16.362Z", "date_only": false, "value": "2026-03-26T21:39:16.362000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.25.release_date", "linked_record": true}, {"timestamp": "2026-03-26T22:01:52.640Z", "date_only": false, "value": "2026-03-26T22:01:52.640474+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.24.discovery_date", "linked_record": true}, {"timestamp": "2026-03-26T22:02:21.858Z", "date_only": false, "value": "2026-03-26T22:02:21.858105+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.25.discovery_date", "linked_record": true}, {"timestamp": "2026-03-27T00:00:00Z", "date_only": false, "value": "2026-03-27T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.107.release_date", "linked_record": true}, {"timestamp": "2026-03-27T00:00:00Z", "date_only": false, "value": "2026-03-27T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.23.release_date", "linked_record": true}, {"timestamp": "2026-03-27T00:00:00Z", "date_only": false, "value": "2026-03-27T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.22.release_date", "linked_record": true}, {"timestamp": "2026-03-27T14:04:52.297Z", "date_only": false, "value": "2026-03-27T14:04:52.297000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.26.release_date", "linked_record": true}, {"timestamp": "2026-03-27T15:03:02.892Z", "date_only": false, "value": "2026-03-27T15:03:02.892793+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.26.discovery_date", "linked_record": true}, {"timestamp": "2026-03-30T17:16:11.021Z", "date_only": false, "value": "2026-03-30T17:16:11.021000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.21.release_date", "linked_record": true}, {"timestamp": "2026-03-30T18:01:19.326Z", "date_only": false, "value": "2026-03-30T18:01:19.326391+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.21.discovery_date", "linked_record": true}, {"timestamp": "2026-03-31T01:48:45.759Z", "date_only": false, "value": "2026-03-31T01:48:45.759000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.27.release_date", "linked_record": true}, {"timestamp": "2026-03-31T03:02:04.502Z", "date_only": false, "value": "2026-03-31T03:02:04.502444+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.27.discovery_date", "linked_record": true}, {"timestamp": "2026-04-02T16:30:59.615Z", "date_only": false, "value": "2026-04-02T16:30:59.615000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.61.release_date", "linked_record": true}, {"timestamp": "2026-04-02T16:44:27.806Z", "date_only": false, "value": "2026-04-02T16:44:27.806000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.62.release_date", "linked_record": true}, {"timestamp": "2026-04-02T16:52:53.623Z", "date_only": false, "value": "2026-04-02T16:52:53.623000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.63.release_date", "linked_record": true}, {"timestamp": "2026-04-02T16:57:31.073Z", "date_only": false, "value": "2026-04-02T16:57:31.073000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.64.release_date", "linked_record": true}, {"timestamp": "2026-04-02T17:01:07.052Z", "date_only": false, "value": "2026-04-02T17:01:07.052864+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.61.discovery_date", "linked_record": true}, {"timestamp": "2026-04-02T17:08:15.628Z", "date_only": false, "value": "2026-04-02T17:08:15.628000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.65.release_date", "linked_record": true}, {"timestamp": "2026-04-02T18:01:25.983Z", "date_only": false, "value": "2026-04-02T18:01:25.983089+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.65.discovery_date", "linked_record": true}, {"timestamp": "2026-04-02T18:01:38.952Z", "date_only": false, "value": "2026-04-02T18:01:38.952994+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.63.discovery_date", "linked_record": true}, {"timestamp": "2026-04-02T18:02:01.536Z", "date_only": false, "value": "2026-04-02T18:02:01.536010+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.64.discovery_date", "linked_record": true}, {"timestamp": "2026-04-02T18:02:24.149Z", "date_only": false, "value": "2026-04-02T18:02:24.149353+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.62.discovery_date", "linked_record": true}, {"timestamp": "2026-04-03T00:00:00Z", "date_only": false, "value": "2026-04-03T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.109.release_date", "linked_record": true}, {"timestamp": "2026-04-03T00:00:00Z", "date_only": false, "value": "2026-04-03T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.25.release_date", "linked_record": true}, {"timestamp": "2026-04-03T00:00:00Z", "date_only": false, "value": "2026-04-03T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.24.release_date", "linked_record": true}, {"timestamp": "2026-04-03T02:21:33.584Z", "date_only": false, "value": "2026-04-03T02:21:33.584000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.66.release_date", "linked_record": true}, {"timestamp": "2026-04-03T03:01:03.124Z", "date_only": false, "value": "2026-04-03T03:01:03.124541+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.66.discovery_date", "linked_record": true}, {"timestamp": "2026-04-06T00:00:00Z", "date_only": false, "value": "2026-04-06T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.25.release_date", "linked_record": true}, {"timestamp": "2026-04-06T13:36:20Z", "date_only": false, "value": "2026-04-06T13:36:20+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2026-04-06T13:36:20Z", "date_only": false, "value": "2026-04-06T13:36:20+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2026-04-06T13:36:20Z", "date_only": false, "value": "2026-04-06T13:36:20+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2026-04-06T13:36:20Z", "date_only": false, "value": "2026-04-06T13:36:20+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2026-04-06T15:16:48.809Z", "date_only": false, "value": "2026-04-06T15:16:48.809000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.59.release_date", "linked_record": true}, {"timestamp": "2026-04-06T16:02:10.004Z", "date_only": false, "value": "2026-04-06T16:02:10.004743+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.59.discovery_date", "linked_record": true}, {"timestamp": "2026-04-06T16:22:45.353Z", "date_only": false, "value": "2026-04-06T16:22:45.353000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.28.release_date", "linked_record": true}, {"timestamp": "2026-04-06T17:01:34.639Z", "date_only": false, "value": "2026-04-06T17:01:34.639203+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.28.discovery_date", "linked_record": true}, {"timestamp": "2026-04-06T17:54:42.779Z", "date_only": false, "value": "2026-04-06T17:54:42.779000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.60.release_date", "linked_record": true}, {"timestamp": "2026-04-06T19:01:00.182Z", "date_only": false, "value": "2026-04-06T19:01:00.182513+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.60.discovery_date", "linked_record": true}, {"timestamp": "2026-04-07T00:00:00Z", "date_only": false, "value": "2026-04-07T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.52.release_date", "linked_record": true}, {"timestamp": "2026-04-07T00:00:00Z", "date_only": false, "value": "2026-04-07T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.26.release_date", "linked_record": true}, {"timestamp": "2026-04-07T00:00:00Z", "date_only": false, "value": "2026-04-07T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.25.release_date", "linked_record": true}, {"timestamp": "2026-04-07T22:00:54.172Z", "date_only": false, "value": "2026-04-07T22:00:54.172000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.50.release_date", "linked_record": true}, {"timestamp": "2026-04-07T23:01:18.313Z", "date_only": false, "value": "2026-04-07T23:01:18.313921+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.50.discovery_date", "linked_record": true}, {"timestamp": "2026-04-08T00:00:00Z", "date_only": false, "value": "2026-04-08T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.111.release_date", "linked_record": true}, {"timestamp": "2026-04-08T00:00:00Z", "date_only": false, "value": "2026-04-08T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.27.release_date", "linked_record": true}, {"timestamp": "2026-04-08T00:00:00Z", "date_only": false, "value": "2026-04-08T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.26.release_date", "linked_record": true}, {"timestamp": "2026-04-10T17:54:44.121Z", "date_only": false, "value": "2026-04-10T17:54:44.121000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.13.release_date", "linked_record": true}, {"timestamp": "2026-04-10T19:01:07.715Z", "date_only": false, "value": "2026-04-10T19:01:07.715197+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.13.discovery_date", "linked_record": true}, {"timestamp": "2026-04-13T03:52:35Z", "date_only": false, "value": "2026-04-13T03:52:35+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.29.discovery_date", "linked_record": true}, {"timestamp": "2026-04-13T23:59:59Z", "date_only": false, "value": "2026-04-13T23:59:59+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.29.release_date", "linked_record": true}, {"timestamp": "2026-04-20T20:37:31.743Z", "date_only": false, "value": "2026-04-20T20:37:31.743000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.30.release_date", "linked_record": true}, {"timestamp": "2026-04-20T20:55:41.170Z", "date_only": false, "value": "2026-04-20T20:55:41.170000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.29.release_date", "linked_record": true}, {"timestamp": "2026-04-20T21:01:35.403Z", "date_only": false, "value": "2026-04-20T21:01:35.403778+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.29.discovery_date", "linked_record": true}, {"timestamp": "2026-04-20T21:01:38.811Z", "date_only": false, "value": "2026-04-20T21:01:38.811304+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.30.discovery_date", "linked_record": true}, {"timestamp": "2026-04-21T23:19:41Z", "date_only": false, "value": "2026-04-21T23:19:41+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.96.discovery_date", "linked_record": true}, {"timestamp": "2026-04-23T04:30:26.124Z", "date_only": false, "value": "2026-04-23T04:30:26.124000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.70.release_date", "linked_record": true}, {"timestamp": "2026-04-23T05:00:56.113Z", "date_only": false, "value": "2026-04-23T05:00:56.113348+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.70.discovery_date", "linked_record": true}, {"timestamp": "2026-04-24T02:27:47.719Z", "date_only": false, "value": "2026-04-24T02:27:47.719000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.32.release_date", "linked_record": true}, {"timestamp": "2026-04-24T03:01:02.377Z", "date_only": false, "value": "2026-04-24T03:01:02.377527+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.32.discovery_date", "linked_record": true}, {"timestamp": "2026-04-24T16:51:39.657Z", "date_only": false, "value": "2026-04-24T16:51:39.657000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.69.release_date", "linked_record": true}, {"timestamp": "2026-04-24T18:01:49.275Z", "date_only": false, "value": "2026-04-24T18:01:49.275019+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.69.discovery_date", "linked_record": true}, {"timestamp": "2026-04-24T18:09:24.744Z", "date_only": false, "value": "2026-04-24T18:09:24.744000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.34.release_date", "linked_record": true}, {"timestamp": "2026-04-24T19:02:43.860Z", "date_only": false, "value": "2026-04-24T19:02:43.860767+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.34.discovery_date", "linked_record": true}, {"timestamp": "2026-04-26T18:39:13Z", "date_only": false, "value": "2026-04-26T18:39:13+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.102.discovery_date", "linked_record": true}, {"timestamp": "2026-04-26T18:54:39Z", "date_only": false, "value": "2026-04-26T18:54:39+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.100.discovery_date", "linked_record": true}, {"timestamp": "2026-04-26T19:17:42Z", "date_only": false, "value": "2026-04-26T19:17:42+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.101.discovery_date", "linked_record": true}, {"timestamp": "2026-04-28T00:00:00Z", "date_only": false, "value": "2026-04-28T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.67.release_date", "linked_record": true}, {"timestamp": "2026-04-28T07:01:37.543Z", "date_only": false, "value": "2026-04-28T07:01:37.543641+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.68.discovery_date", "linked_record": true}, {"timestamp": "2026-04-28T07:01:45.120Z", "date_only": false, "value": "2026-04-28T07:01:45.120520+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.67.discovery_date", "linked_record": true}, {"timestamp": "2026-04-28T11:58:54.962Z", "date_only": false, "value": "2026-04-28T11:58:54.962000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.28.release_date", "linked_record": true}, {"timestamp": "2026-04-28T14:01:44.684Z", "date_only": false, "value": "2026-04-28T14:01:44.684432+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.28.discovery_date", "linked_record": true}, {"timestamp": "2026-04-28T16:43:08.526Z", "date_only": false, "value": "2026-04-28T16:43:08.526000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.31.release_date", "linked_record": true}, {"timestamp": "2026-04-28T19:09:30.721Z", "date_only": false, "value": "2026-04-28T19:09:30.721026+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.31.discovery_date", "linked_record": true}, {"timestamp": "2026-04-29T00:00:00Z", "date_only": false, "value": "2026-04-29T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.26.release_date", "linked_record": true}, {"timestamp": "2026-04-30T17:26:28.969Z", "date_only": false, "value": "2026-04-30T17:26:28.969000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.20.release_date", "linked_record": true}, {"timestamp": "2026-04-30T17:28:41.473Z", "date_only": false, "value": "2026-04-30T17:28:41.473000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.53.release_date", "linked_record": true}, {"timestamp": "2026-04-30T17:29:25.738Z", "date_only": false, "value": "2026-04-30T17:29:25.738000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.19.release_date", "linked_record": true}, {"timestamp": "2026-05-02T00:00:00Z", "date_only": false, "value": "2026-05-02T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.56.discovery_date", "linked_record": true}, {"timestamp": "2026-05-04T08:53:59.249Z", "date_only": false, "value": "2026-05-04T08:53:59.249000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.54.release_date", "linked_record": true}, {"timestamp": "2026-05-04T18:12:16.917Z", "date_only": false, "value": "2026-05-04T18:12:16.917000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2026-05-04T18:13:12.340Z", "date_only": false, "value": "2026-05-04T18:13:12.340000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.1.release_date", "linked_record": true}, {"timestamp": "2026-05-04T19:02:19.626Z", "date_only": false, "value": "2026-05-04T19:02:19.626646+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.1.discovery_date", "linked_record": true}, {"timestamp": "2026-05-04T19:02:26.983Z", "date_only": false, "value": "2026-05-04T19:02:26.983660+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2026-05-04T19:31:57.253Z", "date_only": false, "value": "2026-05-04T19:31:57.253000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.8.release_date", "linked_record": true}, {"timestamp": "2026-05-04T20:01:14.938Z", "date_only": false, "value": "2026-05-04T20:01:14.938426+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.8.discovery_date", "linked_record": true}, {"timestamp": "2026-05-05T10:29:16.378Z", "date_only": false, "value": "2026-05-05T10:29:16.378000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.9.release_date", "linked_record": true}, {"timestamp": "2026-05-05T10:29:16.378Z", "date_only": false, "value": "2026-05-05T10:29:16.378000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.4.release_date", "linked_record": true}, {"timestamp": "2026-05-05T11:01:00.332Z", "date_only": false, "value": "2026-05-05T11:01:00.332189+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.9.discovery_date", "linked_record": true}, {"timestamp": "2026-05-05T11:01:00.332Z", "date_only": false, "value": "2026-05-05T11:01:00.332189+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.4.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T16:32:32.382Z", "date_only": false, "value": "2026-05-06T16:32:32.382000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.71.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T16:57:37.044Z", "date_only": false, "value": "2026-05-06T16:57:37.044000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.72.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T19:06:25.319Z", "date_only": false, "value": "2026-05-06T19:06:25.319000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.73.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T19:16:02.753Z", "date_only": false, "value": "2026-05-06T19:16:02.753000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.74.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T19:47:00.134Z", "date_only": false, "value": "2026-05-06T19:47:00.134000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.75.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T19:50:31.302Z", "date_only": false, "value": "2026-05-06T19:50:31.302000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.26.discovery_date", "linked_record": true}, {"timestamp": "2026-05-06T19:51:54.069Z", "date_only": false, "value": "2026-05-06T19:51:54.069000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.76.discovery_date", "linked_record": true}, {"timestamp": "2026-05-07T10:50:28.379Z", "date_only": false, "value": "2026-05-07T10:50:28.379000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.77.discovery_date", "linked_record": true}, {"timestamp": "2026-05-07T11:02:44.331Z", "date_only": false, "value": "2026-05-07T11:02:44.331000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.27.discovery_date", "linked_record": true}, {"timestamp": "2026-05-07T13:36:55.871Z", "date_only": false, "value": "2026-05-07T13:36:55.871000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.33.release_date", "linked_record": true}, {"timestamp": "2026-05-07T15:01:54.137Z", "date_only": false, "value": "2026-05-07T15:01:54.137775+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.33.discovery_date", "linked_record": true}, {"timestamp": "2026-05-10T06:36:16.927Z", "date_only": false, "value": "2026-05-10T06:36:16.927000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.88.release_date", "linked_record": true}, {"timestamp": "2026-05-10T07:00:47.768Z", "date_only": false, "value": "2026-05-10T07:00:47.768180+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.88.discovery_date", "linked_record": true}, {"timestamp": "2026-05-12T01:48:40.452Z", "date_only": false, "value": "2026-05-12T01:48:40.452Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "CVE-2026-45409", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-05-13T14:12:43.971Z", "date_only": false, "value": "2026-05-13T14:12:43.971000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.85.release_date", "linked_record": true}, {"timestamp": "2026-05-13T15:17:12.611Z", "date_only": false, "value": "2026-05-13T15:17:12.611000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2026-05-13T15:17:12.611Z", "date_only": false, "value": "2026-05-13T15:17:12.611000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.87.release_date", "linked_record": true}, {"timestamp": "2026-05-13T15:20:24.588Z", "date_only": false, "value": "2026-05-13T15:20:24.588000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2026-05-13T15:20:24.588Z", "date_only": false, "value": "2026-05-13T15:20:24.588000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.0.release_date", "linked_record": true}, {"timestamp": "2026-05-13T15:20:24.588Z", "date_only": false, "value": "2026-05-13T15:20:24.588000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.86.release_date", "linked_record": true}, {"timestamp": "2026-05-13T16:04:29.017Z", "date_only": false, "value": "2026-05-13T16:04:29.017257+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.85.discovery_date", "linked_record": true}, {"timestamp": "2026-05-13T17:01:01.083Z", "date_only": false, "value": "2026-05-13T17:01:01.083841+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2026-05-13T17:01:01.083Z", "date_only": false, "value": "2026-05-13T17:01:01.083841+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.87.discovery_date", "linked_record": true}, {"timestamp": "2026-05-13T17:01:41.663Z", "date_only": false, "value": "2026-05-13T17:01:41.663622+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2026-05-13T17:01:41.663Z", "date_only": false, "value": "2026-05-13T17:01:41.663622+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.0.discovery_date", "linked_record": true}, {"timestamp": "2026-05-13T17:01:41.663Z", "date_only": false, "value": "2026-05-13T17:01:41.663622+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.86.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:02.086Z", "date_only": false, "value": "2026-05-14T13:00:02.086000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.32.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:09.446Z", "date_only": false, "value": "2026-05-14T13:00:09.446000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.33.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:10.254Z", "date_only": false, "value": "2026-05-14T13:00:10.254000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.34.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:11.039Z", "date_only": false, "value": "2026-05-14T13:00:11.039000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.35.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:12.497Z", "date_only": false, "value": "2026-05-14T13:00:12.497000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.36.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:13.174Z", "date_only": false, "value": "2026-05-14T13:00:13.174000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.37.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:13.859Z", "date_only": false, "value": "2026-05-14T13:00:13.859000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.38.release_date", "linked_record": true}, {"timestamp": "2026-05-14T13:00:15.223Z", "date_only": false, "value": "2026-05-14T13:00:15.223000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.39.release_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:10.230Z", "date_only": false, "value": "2026-05-14T14:01:10.230544+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.32.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:20.040Z", "date_only": false, "value": "2026-05-14T14:01:20.040061+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.35.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:28.018Z", "date_only": false, "value": "2026-05-14T14:01:28.018770+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.34.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:31.087Z", "date_only": false, "value": "2026-05-14T14:01:31.087667+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.36.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:33.754Z", "date_only": false, "value": "2026-05-14T14:01:33.754271+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.39.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:40.164Z", "date_only": false, "value": "2026-05-14T14:01:40.164297+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.38.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:45.568Z", "date_only": false, "value": "2026-05-14T14:01:45.568001+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.37.discovery_date", "linked_record": true}, {"timestamp": "2026-05-14T14:01:48.197Z", "date_only": false, "value": "2026-05-14T14:01:48.197406+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.33.discovery_date", "linked_record": true}, {"timestamp": "2026-05-15T14:53:57.263Z", "date_only": false, "value": "2026-05-15T14:53:57.263000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.37.release_date", "linked_record": true}, {"timestamp": "2026-05-15T14:57:31.872Z", "date_only": false, "value": "2026-05-15T14:57:31.872000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.93.release_date", "linked_record": true}, {"timestamp": "2026-05-15T16:00:55.786Z", "date_only": false, "value": "2026-05-15T16:00:55.786944+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.37.discovery_date", "linked_record": true}, {"timestamp": "2026-05-15T16:00:58.827Z", "date_only": false, "value": "2026-05-15T16:00:58.827425+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.93.discovery_date", "linked_record": true}, {"timestamp": "2026-05-19T14:34:32Z", "date_only": false, "value": "2026-05-19T14:34:32Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-05-20T00:00:00Z", "date_only": false, "value": "2026-05-20T00:00:00Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-05-20T00:00:00Z", "date_only": false, "value": "2026-05-20T00:00:00Z", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-05-20T00:00:00Z", "date_only": false, "value": "2026-05-20T00:00:00Z", "kind": "other", "label": "Impact", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-05-20T00:00:00Z", "date_only": false, "value": "2026-05-20T00:00:00Z", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-05-22T14:11:41.877Z", "date_only": false, "value": "2026-05-22T14:11:41.877000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.43.release_date", "linked_record": true}, {"timestamp": "2026-05-22T15:00:55.131Z", "date_only": false, "value": "2026-05-22T15:00:55.131994+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.43.discovery_date", "linked_record": true}, {"timestamp": "2026-05-22T15:01:21.462Z", "date_only": false, "value": "2026-05-22T15:01:21.462000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.30.release_date", "linked_record": true}, {"timestamp": "2026-05-22T16:00:52.844Z", "date_only": false, "value": "2026-05-22T16:00:52.844126+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.30.discovery_date", "linked_record": true}, {"timestamp": "2026-05-24T00:00:00Z", "date_only": false, "value": "2026-05-24T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.47.release_date", "linked_record": true}, {"timestamp": "2026-05-24T00:00:00Z", "date_only": false, "value": "2026-05-24T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.11.release_date", "linked_record": true}, {"timestamp": "2026-05-24T05:30:09.671Z", "date_only": false, "value": "2026-05-24T05:30:09.671000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.12.release_date", "linked_record": true}, {"timestamp": "2026-05-24T07:00:47.549Z", "date_only": false, "value": "2026-05-24T07:00:47.549016+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.12.discovery_date", "linked_record": true}, {"timestamp": "2026-05-25T02:03:41.864Z", "date_only": false, "value": "2026-05-25T02:03:41.864176Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/releaseport.com/post/3mmnf6taznj27", "record": "CVE-2026-45409", "field": "creation_timestamp", "uuid": "0c8f78a6-ac69-403c-a1ec-e2c2f6a93e86", "content": "Saleor 3.22.51 patches CVE-2026-45409\nCritical security vulnerabilities in JWT handling and IDNA processing are addressed,\nUpgrade carefully.\n\n\u2192 releaseport.com/r/saleor-saleor/3-22-51", "url": "https://bsky.app/profile/releaseport.com/post/3mmnf6taznj27"}, {"timestamp": "2026-05-25T03:04:26.896Z", "date_only": false, "value": "2026-05-25T03:04:26.896487Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/releaseport.com/post/3mmnil4kweh2v", "record": "CVE-2026-45409", "field": "creation_timestamp", "uuid": "cca4f543-0b09-47a7-9aa2-dd260318754c", "content": "Saleor 3.23.7 patches CVE-2026-45409\nCritical security vulnerabilities in JWT handling and idna processing are patched,\nUpgrade carefully.\n\n\u2192 releaseport.com/r/saleor-saleor/3-23-7", "url": "https://bsky.app/profile/releaseport.com/post/3mmnil4kweh2v"}, {"timestamp": "2026-05-26T00:00:00Z", "date_only": false, "value": "2026-05-26T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.11.discovery_date", "linked_record": true}, {"timestamp": "2026-05-26T00:02:50.859Z", "date_only": false, "value": "2026-05-26T00:02:50.859665Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/releaseport.com/post/3mmpovmoulr2j", "record": "CVE-2026-45409", "field": "creation_timestamp", "uuid": "0db20ca1-2c48-40d9-9775-fd3f4896353a", "content": "Saleor 3.21.59 patches CVE-2026-45409\nEngineers benefit from critical PyJWT security patches and an idna update, enhancing JWT\nUpgrade carefully.\n\n\u2192 releaseport.com/r/saleor-saleor/3-21-59", "url": "https://bsky.app/profile/releaseport.com/post/3mmpovmoulr2j"}, {"timestamp": "2026-05-26T16:07:55.363Z", "date_only": false, "value": "2026-05-26T16:07:55.363000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.96.release_date", "linked_record": true}, {"timestamp": "2026-05-27T13:08:15.013Z", "date_only": false, "value": "2026-05-27T13:08:15.013000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.40.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T13:10:14.368Z", "date_only": false, "value": "2026-05-27T13:10:14.368000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.42.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T13:10:51.985Z", "date_only": false, "value": "2026-05-27T13:10:51.985000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.55.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T13:59:43Z", "date_only": false, "value": "2026-05-27T13:59:43+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.57.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T14:04:59Z", "date_only": false, "value": "2026-05-27T14:04:59+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.58.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T14:08:07Z", "date_only": false, "value": "2026-05-27T14:08:07+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.79.discovery_date", "linked_record": true}, {"timestamp": "2026-05-27T14:17:46Z", "date_only": false, "value": "2026-05-27T14:17:46+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.80.discovery_date", "linked_record": true}, {"timestamp": "2026-05-28T15:00:42Z", "date_only": false, "value": "2026-05-28T15:00:42Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-05-28T15:00:42Z", "date_only": false, "value": "2026-05-28T15:00:42Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-05-28T15:00:42Z", "date_only": false, "value": "2026-05-28T15:00:42Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-05-28T15:00:42Z", "date_only": false, "value": "2026-05-28T15:00:42Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-05-28T15:40:43Z", "date_only": false, "value": "2026-05-28T15:40:43Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-05-28T15:40:43Z", "date_only": false, "value": "2026-05-28T15:40:43Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-05-28T15:40:43Z", "date_only": false, "value": "2026-05-28T15:40:43Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-05-28T15:40:43Z", "date_only": false, "value": "2026-05-28T15:40:43Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-02T17:55:09.919Z", "date_only": false, "value": "2026-06-02T17:55:09.919000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.31.release_date", "linked_record": true}, {"timestamp": "2026-06-02T18:23:02.765Z", "date_only": false, "value": "2026-06-02T18:23:02.765000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.35.release_date", "linked_record": true}, {"timestamp": "2026-06-02T20:01:56.630Z", "date_only": false, "value": "2026-06-02T20:01:56.630167+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.31.discovery_date", "linked_record": true}, {"timestamp": "2026-06-02T20:02:09.305Z", "date_only": false, "value": "2026-06-02T20:02:09.305521+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.35.discovery_date", "linked_record": true}, {"timestamp": "2026-06-05T11:11:32Z", "date_only": false, "value": "2026-06-05T11:11:32Z", "kind": "milestone", "label": "Published", "source": "osv_openeuler \u00b7 OESA-2026-2605", "record": "OESA-2026-2605", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-45409", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "vulnerabilities.0.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "vulnerabilities.0.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "vulnerabilities.0.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "vulnerabilities.0.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "vulnerabilities.0.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.1.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.36.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.89.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.17.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.16.release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T22:06:07.082Z", "date_only": false, "value": "2026-06-05T22:06:07.082Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-45409", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.1.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.36.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.89.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.17.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.16.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:16:00Z", "date_only": false, "value": "2026-06-05T23:16:00Z", "kind": "milestone", "label": "Published", "source": "osv_ubuntu \u00b7 UBUNTU-CVE-2026-45409", "record": "UBUNTU-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:16:43Z", "date_only": false, "value": "2026-06-05T23:16:43Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "database_specific.nvd_published_at", "linked_record": true}, {"timestamp": "2026-06-05T23:16:43.343Z", "date_only": false, "value": "2026-06-05T23:16:43.343", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-45409", "record": "FKIE_CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-05T23:16:43.343Z", "date_only": false, "value": "2026-06-05T23:16:43.343Z", "kind": "milestone", "label": "Published", "source": "pysec \u00b7 PYSEC-2026-215", "record": "PYSEC-2026-215", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-06T00:46:44.907Z", "date_only": false, "value": "2026-06-06T00:46:44.907977Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/cve.skyfleet.blue/post/3mnlgica57p2y", "record": "CVE-2026-45409", "field": "creation_timestamp", "uuid": "dadb8f8e-3666-45a9-91da-30a7b279e1ba", "content": "CVE-2026-45409 - Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() can bypass CVE-2024-3651 fix\nCVE ID : CVE-2026-45409\n \n Published : June 5, 2026, 11:16 p.m. | 1\u00a0hour, 16\u00a0minutes ago\n \n Description : Internationalized Domain Nam...", "url": "https://bsky.app/profile/cve.skyfleet.blue/post/3mnlgica57p2y"}, {"timestamp": "2026-06-08T12:19:32.128Z", "date_only": false, "value": "2026-06-08T12:19:32.128434Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-CQ05396", "record": "CLEANSTART-2026-CQ05396", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-08T12:29:23.792Z", "date_only": false, "value": "2026-06-08T12:29:23.792179Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-AZ09261", "record": "CLEANSTART-2026-AZ09261", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-08T12:34:30.162Z", "date_only": false, "value": "2026-06-08T12:34:30.162472Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-FU07345", "record": "CLEANSTART-2026-FU07345", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-08T14:30:54.406Z", "date_only": false, "value": "2026-06-08T14:30:54.406761Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-45409", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-06-08T14:30:54.406Z", "date_only": false, "value": "2026-06-08T14:30:54.406761Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-45409", "record": "FKIE_CVE-2026-45409", "field": "metrics.ssvcV203.0.ssvcData.timestamp", "linked_record": true}, {"timestamp": "2026-06-08T14:58:02.453Z", "date_only": false, "value": "2026-06-08T14:58:02.453463Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-NN42198", "record": "CLEANSTART-2026-NN42198", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-08T16:34:00.295Z", "date_only": false, "value": "2026-06-08T16:34:00.295Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-45409", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-06-08T16:34:00.295Z", "date_only": false, "value": "2026-06-08T16:34:00.295Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-45409", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-06-09T00:00:00Z", "date_only": false, "value": "2026-06-09T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.40.release_date", "linked_record": true}, {"timestamp": "2026-06-09T19:08:31.019Z", "date_only": false, "value": "2026-06-09T19:08:31.019000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.8.release_date", "linked_record": true}, {"timestamp": "2026-06-09T19:08:31.019Z", "date_only": false, "value": "2026-06-09T19:08:31.019000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.6.release_date", "linked_record": true}, {"timestamp": "2026-06-09T19:21:42.603Z", "date_only": false, "value": "2026-06-09T19:21:42.603000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.9.release_date", "linked_record": true}, {"timestamp": "2026-06-09T19:21:42.603Z", "date_only": false, "value": "2026-06-09T19:21:42.603000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.7.release_date", "linked_record": true}, {"timestamp": "2026-06-09T20:01:15.006Z", "date_only": false, "value": "2026-06-09T20:01:15.006955+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.8.discovery_date", "linked_record": true}, {"timestamp": "2026-06-09T20:01:15.006Z", "date_only": false, "value": "2026-06-09T20:01:15.006955+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.6.discovery_date", "linked_record": true}, {"timestamp": "2026-06-09T20:02:19.874Z", "date_only": false, "value": "2026-06-09T20:02:19.874232+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.9.discovery_date", "linked_record": true}, {"timestamp": "2026-06-09T20:02:19.874Z", "date_only": false, "value": "2026-06-09T20:02:19.874232+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.7.discovery_date", "linked_record": true}, {"timestamp": "2026-06-10T00:46:54.779Z", "date_only": false, "value": "2026-06-10T00:46:54.779122Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-EN66750", "record": "CLEANSTART-2026-EN66750", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-10T01:08:55.464Z", "date_only": false, "value": "2026-06-10T01:08:55.464614Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-FT24360", "record": "CLEANSTART-2026-FT24360", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-06-11T00:58:47.477Z", "date_only": false, "value": "2026-06-11T00:58:47.477773Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-NM83456", "record": "CLEANSTART-2026-NM83456", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-11T06:11:58.327Z", "date_only": false, "value": "2026-06-11T06:11:58.32796Z", "kind": "milestone", "label": "Published", "source": "osv_bellsoft \u00b7 BELL-CVE-2026-45409", "record": "BELL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-11T18:31:44.286Z", "date_only": false, "value": "2026-06-11T18:31:44.286000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.95.release_date", "linked_record": true}, {"timestamp": "2026-06-11T18:32:14.471Z", "date_only": false, "value": "2026-06-11T18:32:14.471000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.94.release_date", "linked_record": true}, {"timestamp": "2026-06-11T18:32:32.722Z", "date_only": false, "value": "2026-06-11T18:32:32.722000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.97.release_date", "linked_record": true}, {"timestamp": "2026-06-11T19:00:56.050Z", "date_only": false, "value": "2026-06-11T19:00:56.050612+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.94.discovery_date", "linked_record": true}, {"timestamp": "2026-06-11T19:01:57.042Z", "date_only": false, "value": "2026-06-11T19:01:57.042099+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.97.discovery_date", "linked_record": true}, {"timestamp": "2026-06-11T19:02:45.999Z", "date_only": false, "value": "2026-06-11T19:02:45.999423+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.95.discovery_date", "linked_record": true}, {"timestamp": "2026-06-12T08:54:57Z", "date_only": false, "value": "2026-06-12T08:54:57+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-12T08:54:57Z", "date_only": false, "value": "2026-06-12T08:54:57+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-12T08:54:57Z", "date_only": false, "value": "2026-06-12T08:54:57+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "vulnerabilities.0.remediations.0.date", "metric_role": "patch", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-12T18:01:30.362Z", "date_only": false, "value": "2026-06-12T18:01:30.362000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.16.release_date", "linked_record": true}, {"timestamp": "2026-06-12T19:00:57.360Z", "date_only": false, "value": "2026-06-12T19:00:57.360953+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.16.discovery_date", "linked_record": true}, {"timestamp": "2026-06-16T08:59:09Z", "date_only": false, "value": "2026-06-16T08:59:09+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-16T08:59:09Z", "date_only": false, "value": "2026-06-16T08:59:09+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-16T08:59:09Z", "date_only": false, "value": "2026-06-16T08:59:09+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "vulnerabilities.0.remediations.0.date", "metric_role": "patch", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-16T12:25:57.258Z", "date_only": false, "value": "2026-06-16T12:25:57.258351Z", "kind": "other", "label": "Updated", "source": "pysec \u00b7 PYSEC-2026-215", "record": "PYSEC-2026-215", "field": "modified", "linked_record": true}, {"timestamp": "2026-06-16T19:47:00Z", "date_only": false, "value": "2026-06-16T19:47:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.99.discovery_date", "linked_record": true}, {"timestamp": "2026-06-16T20:27:30.301Z", "date_only": false, "value": "2026-06-16T20:27:30.301759Z", "kind": "other", "label": "Updated", "source": "osv_bellsoft \u00b7 BELL-CVE-2026-45409", "record": "BELL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-06-16T21:26:22.537Z", "date_only": false, "value": "2026-06-16T21:26:22.537000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.38.release_date", "linked_record": true}, {"timestamp": "2026-06-16T22:01:24.571Z", "date_only": false, "value": "2026-06-16T22:01:24.571224+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.38.discovery_date", "linked_record": true}, {"timestamp": "2026-06-16T23:47:00Z", "date_only": false, "value": "2026-06-16T23:47:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.98.discovery_date", "linked_record": true}, {"timestamp": "2026-06-16T23:47:00Z", "date_only": false, "value": "2026-06-16T23:47:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.20.discovery_date", "linked_record": true}, {"timestamp": "2026-06-16T23:47:00Z", "date_only": false, "value": "2026-06-16T23:47:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.17.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T14:04:32.520Z", "date_only": false, "value": "2026-06-17T14:04:32.520000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.78.release_date", "linked_record": true}, {"timestamp": "2026-06-17T16:01:41.848Z", "date_only": false, "value": "2026-06-17T16:01:41.848723+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.78.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T16:05:38.785Z", "date_only": false, "value": "2026-06-17T16:05:38.785000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.17.release_date", "linked_record": true}, {"timestamp": "2026-06-17T16:36:55.439Z", "date_only": false, "value": "2026-06-17T16:36:55.439000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.11.release_date", "linked_record": true}, {"timestamp": "2026-06-17T16:46:42.706Z", "date_only": false, "value": "2026-06-17T16:46:42.706000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.14.release_date", "linked_record": true}, {"timestamp": "2026-06-17T16:56:18.579Z", "date_only": false, "value": "2026-06-17T16:56:18.579000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.13.release_date", "linked_record": true}, {"timestamp": "2026-06-17T17:01:45.297Z", "date_only": false, "value": "2026-06-17T17:01:45.297604+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.17.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T17:14:50.991Z", "date_only": false, "value": "2026-06-17T17:14:50.991000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.10.release_date", "linked_record": true}, {"timestamp": "2026-06-17T17:31:03.163Z", "date_only": false, "value": "2026-06-17T17:31:03.163000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.15.release_date", "linked_record": true}, {"timestamp": "2026-06-17T19:02:16.713Z", "date_only": false, "value": "2026-06-17T19:02:16.713859+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.10.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T19:02:29.292Z", "date_only": false, "value": "2026-06-17T19:02:29.292011+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.15.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T19:03:30.813Z", "date_only": false, "value": "2026-06-17T19:03:30.813843+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.14.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T19:03:52.323Z", "date_only": false, "value": "2026-06-17T19:03:52.323822+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.13.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T19:04:00.272Z", "date_only": false, "value": "2026-06-17T19:04:00.272340+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.11.discovery_date", "linked_record": true}, {"timestamp": "2026-06-17T21:08:10.534Z", "date_only": false, "value": "2026-06-17T21:08:10.534000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.5.release_date", "linked_record": true}, {"timestamp": "2026-06-17T22:00:51.839Z", "date_only": false, "value": "2026-06-17T22:00:51.839483+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.5.discovery_date", "linked_record": true}, {"timestamp": "2026-06-18T16:05:20.100Z", "date_only": false, "value": "2026-06-18T16:05:20.100000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.18.release_date", "linked_record": true}, {"timestamp": "2026-06-18T16:05:52.058Z", "date_only": false, "value": "2026-06-18T16:05:52.058000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.19.release_date", "linked_record": true}, {"timestamp": "2026-06-18T17:01:46.312Z", "date_only": false, "value": "2026-06-18T17:01:46.312939+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.19.discovery_date", "linked_record": true}, {"timestamp": "2026-06-18T17:02:00.523Z", "date_only": false, "value": "2026-06-18T17:02:00.523729+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.18.discovery_date", "linked_record": true}, {"timestamp": "2026-06-22T12:40:31.424Z", "date_only": false, "value": "2026-06-22T12:40:31.424000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.5.release_date", "linked_record": true}, {"timestamp": "2026-06-22T12:40:31.424Z", "date_only": false, "value": "2026-06-22T12:40:31.424000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2026-06-22T14:01:42.248Z", "date_only": false, "value": "2026-06-22T14:01:42.248415+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.5.discovery_date", "linked_record": true}, {"timestamp": "2026-06-22T14:01:42.248Z", "date_only": false, "value": "2026-06-22T14:01:42.248415+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2026-06-22T14:59:14.906Z", "date_only": false, "value": "2026-06-22T14:59:14.906000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.40.release_date", "linked_record": true}, {"timestamp": "2026-06-22T16:01:01.300Z", "date_only": false, "value": "2026-06-22T16:01:01.300830+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.40.discovery_date", "linked_record": true}, {"timestamp": "2026-06-22T23:17:43.088Z", "date_only": false, "value": "2026-06-22T23:17:43.088000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.100.release_date", "linked_record": true}, {"timestamp": "2026-06-22T23:18:14.750Z", "date_only": false, "value": "2026-06-22T23:18:14.750000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.101.release_date", "linked_record": true}, {"timestamp": "2026-06-22T23:22:11.127Z", "date_only": false, "value": "2026-06-22T23:22:11.127000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.102.release_date", "linked_record": true}, {"timestamp": "2026-06-23T00:00:00Z", "date_only": false, "value": "2026-06-23T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.46.discovery_date", "linked_record": true}, {"timestamp": "2026-06-23T00:00:00Z", "date_only": false, "value": "2026-06-23T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.46.release_date", "linked_record": true}, {"timestamp": "2026-06-23T16:04:17.321Z", "date_only": false, "value": "2026-06-23T16:04:17.321000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.45.release_date", "linked_record": true}, {"timestamp": "2026-06-23T16:04:17.321Z", "date_only": false, "value": "2026-06-23T16:04:17.321000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.8.release_date", "linked_record": true}, {"timestamp": "2026-06-23T17:05:33.822Z", "date_only": false, "value": "2026-06-23T17:05:33.822236+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.45.discovery_date", "linked_record": true}, {"timestamp": "2026-06-23T17:05:33.822Z", "date_only": false, "value": "2026-06-23T17:05:33.822236+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.8.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:21:49.589Z", "date_only": false, "value": "2026-06-24T16:21:49.589000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.106.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:21:49.589Z", "date_only": false, "value": "2026-06-24T16:21:49.589000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.22.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:21:49.589Z", "date_only": false, "value": "2026-06-24T16:21:49.589000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.21.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:30:03.305Z", "date_only": false, "value": "2026-06-24T16:30:03.305000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.107.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:30:03.305Z", "date_only": false, "value": "2026-06-24T16:30:03.305000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.23.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:30:03.305Z", "date_only": false, "value": "2026-06-24T16:30:03.305000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.22.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:40:58.048Z", "date_only": false, "value": "2026-06-24T16:40:58.048000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.108.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:40:58.048Z", "date_only": false, "value": "2026-06-24T16:40:58.048000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.24.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:40:58.048Z", "date_only": false, "value": "2026-06-24T16:40:58.048000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.23.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:49:18.947Z", "date_only": false, "value": "2026-06-24T16:49:18.947000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.109.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:49:18.947Z", "date_only": false, "value": "2026-06-24T16:49:18.947000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.25.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T16:49:18.947Z", "date_only": false, "value": "2026-06-24T16:49:18.947000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.24.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:16:25.796Z", "date_only": false, "value": "2026-06-24T17:16:25.796000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.110.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:16:25.796Z", "date_only": false, "value": "2026-06-24T17:16:25.796000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.26.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:16:25.796Z", "date_only": false, "value": "2026-06-24T17:16:25.796000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.25.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:22:00.405Z", "date_only": false, "value": "2026-06-24T17:22:00.405000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.111.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:22:00.405Z", "date_only": false, "value": "2026-06-24T17:22:00.405000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.27.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:22:00.405Z", "date_only": false, "value": "2026-06-24T17:22:00.405000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.26.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T17:29:08.344Z", "date_only": false, "value": "2026-06-24T17:29:08.344000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.112.discovery_date", "linked_record": true}, {"timestamp": "2026-06-24T21:38:59Z", "date_only": false, "value": "2026-06-24T21:38:59Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:38:59Z", "date_only": false, "value": "2026-06-24T21:38:59Z", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-06-24T21:38:59Z", "date_only": false, "value": "2026-06-24T21:38:59Z", "kind": "other", "label": "Impact", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:38:59Z", "date_only": false, "value": "2026-06-24T21:38:59Z", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-24T21:39:03Z", "date_only": false, "value": "2026-06-24T21:39:03Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-06-25T15:16:16.015Z", "date_only": false, "value": "2026-06-25T15:16:16.015000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.105.release_date", "linked_record": true}, {"timestamp": "2026-06-25T15:22:37.949Z", "date_only": false, "value": "2026-06-25T15:22:37.949000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.104.release_date", "linked_record": true}, {"timestamp": "2026-06-25T15:34:33.424Z", "date_only": false, "value": "2026-06-25T15:34:33.424000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.103.release_date", "linked_record": true}, {"timestamp": "2026-06-25T16:01:18.343Z", "date_only": false, "value": "2026-06-25T16:01:18.343208+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.104.discovery_date", "linked_record": true}, {"timestamp": "2026-06-25T16:01:37.648Z", "date_only": false, "value": "2026-06-25T16:01:37.648886+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.105.discovery_date", "linked_record": true}, {"timestamp": "2026-06-25T16:02:21.870Z", "date_only": false, "value": "2026-06-25T16:02:21.870241+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.103.discovery_date", "linked_record": true}, {"timestamp": "2026-06-26T00:00:00Z", "date_only": false, "value": "2026-06-26T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.47.discovery_date", "linked_record": true}, {"timestamp": "2026-06-26T00:00:00Z", "date_only": false, "value": "2026-06-26T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.11.discovery_date", "linked_record": true}, {"timestamp": "2026-06-28T01:32:57.163Z", "date_only": false, "value": "2026-06-28T01:32:57.163000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.113.release_date", "linked_record": true}, {"timestamp": "2026-06-28T01:32:57.163Z", "date_only": false, "value": "2026-06-28T01:32:57.163000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.28.release_date", "linked_record": true}, {"timestamp": "2026-06-28T01:32:57.163Z", "date_only": false, "value": "2026-06-28T01:32:57.163000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.27.release_date", "linked_record": true}, {"timestamp": "2026-06-28T03:01:22.756Z", "date_only": false, "value": "2026-06-28T03:01:22.756250+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.113.discovery_date", "linked_record": true}, {"timestamp": "2026-06-28T03:01:22.756Z", "date_only": false, "value": "2026-06-28T03:01:22.756250+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.28.discovery_date", "linked_record": true}, {"timestamp": "2026-06-28T03:01:22.756Z", "date_only": false, "value": "2026-06-28T03:01:22.756250+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.27.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T10:15:50.766Z", "date_only": false, "value": "2026-06-29T10:15:50.766000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.15.release_date", "linked_record": true}, {"timestamp": "2026-06-29T10:15:50.766Z", "date_only": false, "value": "2026-06-29T10:15:50.766000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.14.release_date", "linked_record": true}, {"timestamp": "2026-06-29T10:15:57.278Z", "date_only": false, "value": "2026-06-29T10:15:57.278000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.16.release_date", "linked_record": true}, {"timestamp": "2026-06-29T10:15:57.278Z", "date_only": false, "value": "2026-06-29T10:15:57.278000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.15.release_date", "linked_record": true}, {"timestamp": "2026-06-29T12:01:03.862Z", "date_only": false, "value": "2026-06-29T12:01:03.862009+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.15.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T12:01:03.862Z", "date_only": false, "value": "2026-06-29T12:01:03.862009+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.14.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T12:01:09.238Z", "date_only": false, "value": "2026-06-29T12:01:09.238155+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.16.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T12:01:09.238Z", "date_only": false, "value": "2026-06-29T12:01:09.238155+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.15.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T13:00:00Z", "date_only": false, "value": "2026-06-29T13:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.98.release_date", "linked_record": true}, {"timestamp": "2026-06-29T13:00:00Z", "date_only": false, "value": "2026-06-29T13:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.20.release_date", "linked_record": true}, {"timestamp": "2026-06-29T13:00:00Z", "date_only": false, "value": "2026-06-29T13:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.17.release_date", "linked_record": true}, {"timestamp": "2026-06-29T13:21:42.697Z", "date_only": false, "value": "2026-06-29T13:21:42.697000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.10.release_date", "linked_record": true}, {"timestamp": "2026-06-29T13:21:42.697Z", "date_only": false, "value": "2026-06-29T13:21:42.697000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.9.release_date", "linked_record": true}, {"timestamp": "2026-06-29T13:22:44.674Z", "date_only": false, "value": "2026-06-29T13:22:44.674000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.19.release_date", "linked_record": true}, {"timestamp": "2026-06-29T14:01:11.961Z", "date_only": false, "value": "2026-06-29T14:01:11.961973+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.10.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T14:01:11.961Z", "date_only": false, "value": "2026-06-29T14:01:11.961973+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.9.discovery_date", "linked_record": true}, {"timestamp": "2026-06-29T14:01:55.592Z", "date_only": false, "value": "2026-06-29T14:01:55.592330+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.19.discovery_date", "linked_record": true}, {"timestamp": "2026-06-30T08:30:34.502Z", "date_only": false, "value": "2026-06-30T08:30:34.502000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.18.release_date", "linked_record": true}, {"timestamp": "2026-06-30T10:00:59.843Z", "date_only": false, "value": "2026-06-30T10:00:59.843854+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.18.discovery_date", "linked_record": true}, {"timestamp": "2026-07-01T09:00:32Z", "date_only": false, "value": "2026-07-01T09:00:32+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-07-01T09:00:32Z", "date_only": false, "value": "2026-07-01T09:00:32+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-01T09:00:32Z", "date_only": false, "value": "2026-07-01T09:00:32+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.1.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-03T06:14:17.541Z", "date_only": false, "value": "2026-07-03T06:14:17.541000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.41.release_date", "linked_record": true}, {"timestamp": "2026-07-03T06:14:17.541Z", "date_only": false, "value": "2026-07-03T06:14:17.541000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.6.release_date", "linked_record": true}, {"timestamp": "2026-07-03T06:14:17.541Z", "date_only": false, "value": "2026-07-03T06:14:17.541000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.4.release_date", "linked_record": true}, {"timestamp": "2026-07-03T06:18:44.499Z", "date_only": false, "value": "2026-07-03T06:18:44.499000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.44.release_date", "linked_record": true}, {"timestamp": "2026-07-03T06:18:44.499Z", "date_only": false, "value": "2026-07-03T06:18:44.499000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.7.release_date", "linked_record": true}, {"timestamp": "2026-07-03T06:18:44.499Z", "date_only": false, "value": "2026-07-03T06:18:44.499000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.5.release_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:12.182Z", "date_only": false, "value": "2026-07-03T07:01:12.182841+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.44.discovery_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:12.182Z", "date_only": false, "value": "2026-07-03T07:01:12.182841+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.7.discovery_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:12.182Z", "date_only": false, "value": "2026-07-03T07:01:12.182841+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.5.discovery_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:27.043Z", "date_only": false, "value": "2026-07-03T07:01:27.043110+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.41.discovery_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:27.043Z", "date_only": false, "value": "2026-07-03T07:01:27.043110+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.6.discovery_date", "linked_record": true}, {"timestamp": "2026-07-03T07:01:27.043Z", "date_only": false, "value": "2026-07-03T07:01:27.043110+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.4.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T00:07:07.759Z", "date_only": false, "value": "2026-07-08T00:07:07.759000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.116.release_date", "linked_record": true}, {"timestamp": "2026-07-08T00:17:33.058Z", "date_only": false, "value": "2026-07-08T00:17:33.058000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.117.release_date", "linked_record": true}, {"timestamp": "2026-07-08T01:01:33.808Z", "date_only": false, "value": "2026-07-08T01:01:33.808610+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.117.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T01:02:02.730Z", "date_only": false, "value": "2026-07-08T01:02:02.730076+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.116.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T15:15:54.675Z", "date_only": false, "value": "2026-07-08T15:15:54.675000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.41.release_date", "linked_record": true}, {"timestamp": "2026-07-08T15:15:54.675Z", "date_only": false, "value": "2026-07-08T15:15:54.675000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.30.release_date", "linked_record": true}, {"timestamp": "2026-07-08T15:18:19.422Z", "date_only": false, "value": "2026-07-08T15:18:19.422000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.29.release_date", "linked_record": true}, {"timestamp": "2026-07-08T16:01:01.825Z", "date_only": false, "value": "2026-07-08T16:01:01.825253+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.29.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T16:01:38.408Z", "date_only": false, "value": "2026-07-08T16:01:38.408322+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.41.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T16:01:38.408Z", "date_only": false, "value": "2026-07-08T16:01:38.408322+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.30.discovery_date", "linked_record": true}, {"timestamp": "2026-07-08T17:35:40Z", "date_only": false, "value": "2026-07-08T17:35:40Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "modified", "linked_record": true}, {"timestamp": "2026-07-09T09:32:27.521Z", "date_only": false, "value": "2026-07-09T09:32:27.521028Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-QE89118", "record": "CLEANSTART-2026-QE89118", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T09:36:58.184Z", "date_only": false, "value": "2026-07-09T09:36:58.184272Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-RF67070", "record": "CLEANSTART-2026-RF67070", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T09:43:31.904Z", "date_only": false, "value": "2026-07-09T09:43:31.904800Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-UO85049", "record": "CLEANSTART-2026-UO85049", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T09:50:49.900Z", "date_only": false, "value": "2026-07-09T09:50:49.900519Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-SO50412", "record": "CLEANSTART-2026-SO50412", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T09:57:54.182Z", "date_only": false, "value": "2026-07-09T09:57:54.182666Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-KE11953", "record": "CLEANSTART-2026-KE11953", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T09:58:21.946Z", "date_only": false, "value": "2026-07-09T09:58:21.946418Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-WQ85001", "record": "CLEANSTART-2026-WQ85001", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-09T16:38:57Z", "date_only": false, "value": "2026-07-09T16:38:57+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-07-09T17:10:57.317Z", "date_only": false, "value": "2026-07-09T17:10:57.317000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.48.release_date", "linked_record": true}, {"timestamp": "2026-07-09T18:02:10.090Z", "date_only": false, "value": "2026-07-09T18:02:10.090070+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.48.discovery_date", "linked_record": true}, {"timestamp": "2026-07-09T22:37:52.789Z", "date_only": false, "value": "2026-07-09T22:37:52.789000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.115.release_date", "linked_record": true}, {"timestamp": "2026-07-09T22:39:01.803Z", "date_only": false, "value": "2026-07-09T22:39:01.803000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.114.release_date", "linked_record": true}, {"timestamp": "2026-07-09T23:01:40.406Z", "date_only": false, "value": "2026-07-09T23:01:40.406872+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.114.discovery_date", "linked_record": true}, {"timestamp": "2026-07-09T23:01:43.278Z", "date_only": false, "value": "2026-07-09T23:01:43.278752+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.115.discovery_date", "linked_record": true}, {"timestamp": "2026-07-10T00:00:00Z", "date_only": true, "value": "2026-07-10", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "vendor_advisories.2.published_at", "linked_record": true}, {"timestamp": "2026-07-12T10:10:00Z", "date_only": false, "value": "2026-07-12T10:10:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.49.release_date", "linked_record": true}, {"timestamp": "2026-07-12T10:10:00Z", "date_only": false, "value": "2026-07-12T10:10:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.12.release_date", "linked_record": true}, {"timestamp": "2026-07-12T10:10:00Z", "date_only": false, "value": "2026-07-12T10:10:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.10.release_date", "linked_record": true}, {"timestamp": "2026-07-12T19:17:25Z", "date_only": false, "value": "2026-07-12T19:17:25+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-07-13T00:00:00Z", "date_only": false, "value": "2026-07-13T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.49.discovery_date", "linked_record": true}, {"timestamp": "2026-07-13T00:00:00Z", "date_only": false, "value": "2026-07-13T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.12.discovery_date", "linked_record": true}, {"timestamp": "2026-07-13T00:00:00Z", "date_only": false, "value": "2026-07-13T00:00:00+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.10.discovery_date", "linked_record": true}, {"timestamp": "2026-07-13T00:00:00Z", "date_only": true, "value": "2026-07-13", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "vendor_advisories.6.published_at", "linked_record": true}, {"timestamp": "2026-07-13T06:25:53.731Z", "date_only": false, "value": "2026-07-13T06:25:53.731612Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-AN24336", "record": "CLEANSTART-2026-AN24336", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-13T06:29:31.585Z", "date_only": false, "value": "2026-07-13T06:29:31.585527Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-FG72002", "record": "CLEANSTART-2026-FG72002", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-13T06:34:48.509Z", "date_only": false, "value": "2026-07-13T06:34:48.509462Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-LJ72726", "record": "CLEANSTART-2026-LJ72726", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-13T06:40:56.755Z", "date_only": false, "value": "2026-07-13T06:40:56.755806Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-EM82280", "record": "CLEANSTART-2026-EM82280", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-13T06:46:52.849Z", "date_only": false, "value": "2026-07-13T06:46:52.849731Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-IR98353", "record": "CLEANSTART-2026-IR98353", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-14T00:00:00Z", "date_only": true, "value": "2026-07-14", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-07-14T16:38:29.691Z", "date_only": false, "value": "2026-07-14T16:38:29.691000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.28.release_date", "linked_record": true}, {"timestamp": "2026-07-14T17:01:19.689Z", "date_only": false, "value": "2026-07-14T17:01:19.689422+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.28.discovery_date", "linked_record": true}, {"timestamp": "2026-07-14T20:03:56.430Z", "date_only": false, "value": "2026-07-14T20:03:56.430000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.39.release_date", "linked_record": true}, {"timestamp": "2026-07-14T20:51:29.369Z", "date_only": false, "value": "2026-07-14T20:51:29.369000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.3.release_date", "linked_record": true}, {"timestamp": "2026-07-14T20:53:12.497Z", "date_only": false, "value": "2026-07-14T20:53:12.497000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.2.release_date", "linked_record": true}, {"timestamp": "2026-07-14T21:02:55.149Z", "date_only": false, "value": "2026-07-14T21:02:55.149976+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.39.discovery_date", "linked_record": true}, {"timestamp": "2026-07-14T22:01:41.402Z", "date_only": false, "value": "2026-07-14T22:01:41.402642+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.2.discovery_date", "linked_record": true}, {"timestamp": "2026-07-14T22:04:22.677Z", "date_only": false, "value": "2026-07-14T22:04:22.677547+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "vulnerabilities.3.discovery_date", "linked_record": true}, {"timestamp": "2026-07-15T00:00:00Z", "date_only": true, "value": "2026-07-15", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "vendor_advisories.3.published_at", "linked_record": true}, {"timestamp": "2026-07-15T14:33:46.142Z", "date_only": false, "value": "2026-07-15T14:33:46.142000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.21.release_date", "linked_record": true}, {"timestamp": "2026-07-15T14:33:46.142Z", "date_only": false, "value": "2026-07-15T14:33:46.142000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.20.release_date", "linked_record": true}, {"timestamp": "2026-07-15T15:01:11.109Z", "date_only": false, "value": "2026-07-15T15:01:11.109948+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.21.discovery_date", "linked_record": true}, {"timestamp": "2026-07-15T15:01:11.109Z", "date_only": false, "value": "2026-07-15T15:01:11.109948+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.20.discovery_date", "linked_record": true}, {"timestamp": "2026-07-15T15:04:21.040Z", "date_only": false, "value": "2026-07-15T15:04:21.040000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.32.release_date", "linked_record": true}, {"timestamp": "2026-07-15T15:04:21.040Z", "date_only": false, "value": "2026-07-15T15:04:21.040000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.29.release_date", "linked_record": true}, {"timestamp": "2026-07-15T16:00:58.750Z", "date_only": false, "value": "2026-07-15T16:00:58.750113+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.32.discovery_date", "linked_record": true}, {"timestamp": "2026-07-15T16:00:58.750Z", "date_only": false, "value": "2026-07-15T16:00:58.750113+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.29.discovery_date", "linked_record": true}, {"timestamp": "2026-07-16T02:10:10Z", "date_only": false, "value": "2026-07-16T02:10:10+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-07-16T02:10:10Z", "date_only": false, "value": "2026-07-16T02:10:10+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-07-16T02:10:10Z", "date_only": false, "value": "2026-07-16T02:10:10+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:26223", "record": "RHSA-2026:26223", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-07-17T00:00:00Z", "date_only": false, "value": "2026-07-17T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-07-17T00:00:00Z", "date_only": false, "value": "2026-07-17T00:00:00", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-17T00:00:00Z", "date_only": false, "value": "2026-07-17T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0901", "record": "CERTFR-2026-AVI-0901", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-07-17T11:42:14Z", "date_only": false, "value": "2026-07-17T11:42:14Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-07-17T11:42:14Z", "date_only": false, "value": "2026-07-17T11:42:14Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-07-17T11:42:14Z", "date_only": false, "value": "2026-07-17T11:42:14Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-07-17T11:42:14Z", "date_only": false, "value": "2026-07-17T11:42:14Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-20T00:00:00Z", "date_only": true, "value": "2026-07-20", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "vendor_advisories.8.published_at", "linked_record": true}, {"timestamp": "2026-07-21T00:00:00Z", "date_only": true, "value": "2026-07-21", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "vendor_advisories.2.published_at", "linked_record": true}, {"timestamp": "2026-07-21T07:41:57.188Z", "date_only": false, "value": "2026-07-21T07:41:57.188439Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-BY15343", "record": "CLEANSTART-2026-BY15343", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T07:42:14.032Z", "date_only": false, "value": "2026-07-21T07:42:14.032998Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-FU68971", "record": "CLEANSTART-2026-FU68971", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T08:22:17.111Z", "date_only": false, "value": "2026-07-21T08:22:17.111164Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-JU43269", "record": "CLEANSTART-2026-JU43269", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T08:45:01.175Z", "date_only": false, "value": "2026-07-21T08:45:01.175094Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-KY55512", "record": "CLEANSTART-2026-KY55512", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T08:52:57.590Z", "date_only": false, "value": "2026-07-21T08:52:57.590847Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-UC45646", "record": "CLEANSTART-2026-UC45646", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T08:53:13.882Z", "date_only": false, "value": "2026-07-21T08:53:13.882885Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-NR60332", "record": "CLEANSTART-2026-NR60332", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T10:36:45.569Z", "date_only": false, "value": "2026-07-21T10:36:45.569138Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-HP19968", "record": "CLEANSTART-2026-HP19968", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-21T10:44:02.572Z", "date_only": false, "value": "2026-07-21T10:44:02.572389Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-SA70432", "record": "CLEANSTART-2026-SA70432", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-22T00:00:00Z", "date_only": true, "value": "2026-07-22", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-07-23T00:00:00Z", "date_only": true, "value": "2026-07-23", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "vendor_advisories.4.published_at", "linked_record": true}, {"timestamp": "2026-07-23T00:00:00Z", "date_only": false, "value": "2026-07-23T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.11.release_date", "linked_record": true}, {"timestamp": "2026-07-23T07:10:00.113Z", "date_only": false, "value": "2026-07-23T07:10:00.113", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-45409", "record": "FKIE_CVE-2026-45409", "field": "lastModified", "linked_record": true}, {"timestamp": "2026-07-24T00:00:00Z", "date_only": false, "value": "2026-07-24T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-07-24T00:00:00Z", "date_only": true, "value": "2026-07-24", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "initial_release_date", "linked_record": true, "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-24T00:00:00Z", "date_only": false, "value": "2026-07-24T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-0933", "record": "CERTFR-2026-AVI-0933", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-07-27T17:23:13.326Z", "date_only": false, "value": "2026-07-27T17:23:13.326000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.18.release_date", "linked_record": true}, {"timestamp": "2026-07-27T18:01:09.671Z", "date_only": false, "value": "2026-07-27T18:01:09.671498+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.18.discovery_date", "linked_record": true}, {"timestamp": "2026-07-29T13:32:01.534Z", "date_only": false, "value": "2026-07-29T13:32:01.534000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.33.release_date", "linked_record": true}, {"timestamp": "2026-07-29T13:32:02.265Z", "date_only": false, "value": "2026-07-29T13:32:02.265000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.34.release_date", "linked_record": true}, {"timestamp": "2026-07-29T14:01:09.009Z", "date_only": false, "value": "2026-07-29T14:01:09.009518+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.33.discovery_date", "linked_record": true}, {"timestamp": "2026-07-29T14:01:28.637Z", "date_only": false, "value": "2026-07-29T14:01:28.637584+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.34.discovery_date", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-BC05591", "record": "CLEANSTART-2026-BC05591", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-CL32060", "record": "CLEANSTART-2026-CL32060", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-CW50457", "record": "CLEANSTART-2026-CW50457", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-GG76429", "record": "CLEANSTART-2026-GG76429", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-JW02028", "record": "CLEANSTART-2026-JW02028", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-KS40314", "record": "CLEANSTART-2026-KS40314", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-OA40644", "record": "CLEANSTART-2026-OA40644", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-OE12787", "record": "CLEANSTART-2026-OE12787", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-RQ52450", "record": "CLEANSTART-2026-RQ52450", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-SC87032", "record": "CLEANSTART-2026-SC87032", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-SZ12594", "record": "CLEANSTART-2026-SZ12594", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-30T07:10:53Z", "date_only": false, "value": "2026-07-30T07:10:53Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-YP48558", "record": "CLEANSTART-2026-YP48558", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-07-31T00:00:00Z", "date_only": false, "value": "2026-07-31T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.13.release_date", "linked_record": true}, {"timestamp": "2026-07-31T00:00:00Z", "date_only": false, "value": "2026-07-31T00:00:00+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.12.release_date", "linked_record": true}, {"timestamp": "2026-07-31T10:48:52.898Z", "date_only": false, "value": "2026-07-31T10:48:52.898000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.13.discovery_date", "linked_record": true}, {"timestamp": "2026-07-31T10:48:52.898Z", "date_only": false, "value": "2026-07-31T10:48:52.898000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.12.discovery_date", "linked_record": true}, {"timestamp": "2026-07-31T16:57:51.102Z", "date_only": false, "value": "2026-07-31T16:57:51.102000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.14.discovery_date", "linked_record": true}, {"timestamp": "2026-07-31T16:57:51.102Z", "date_only": false, "value": "2026-07-31T16:57:51.102000+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.13.discovery_date", "linked_record": true}, {"timestamp": "2026-08-06T11:11:32Z", "date_only": false, "value": "2026-08-06T11:11:32Z", "kind": "other", "label": "Updated", "source": "osv_openeuler \u00b7 OESA-2026-2605", "record": "OESA-2026-2605", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-07T00:00:00Z", "date_only": true, "value": "2026-08-07", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "vendor_advisories.1.published_at", "linked_record": true}, {"timestamp": "2026-08-10T00:00:00Z", "date_only": true, "value": "2026-08-10", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "vendor_advisories.3.published_at", "linked_record": true}, {"timestamp": "2026-08-11T00:00:00Z", "date_only": true, "value": "2026-08-11", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-08-12T00:00:00Z", "date_only": true, "value": "2026-08-12", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "vendor_advisories.2.published_at", "linked_record": true}, {"timestamp": "2026-08-12T00:00:00Z", "date_only": false, "value": "2026-08-12T00:00:00Z", "kind": "milestone", "label": "Published", "source": "osv_almalinux \u00b7 ALSA-2026:54290", "record": "ALSA-2026:54290", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-12T11:25:03Z", "date_only": false, "value": "2026-08-12T11:25:03+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-12T11:25:03Z", "date_only": false, "value": "2026-08-12T11:25:03+00:00", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-12T11:25:03Z", "date_only": false, "value": "2026-08-12T11:25:03+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "vulnerabilities.0.remediations.0.date", "metric_role": "patch", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-12T11:55:49Z", "date_only": false, "value": "2026-08-12T11:55:49Z", "kind": "other", "label": "Updated", "source": "osv_almalinux \u00b7 ALSA-2026:54290", "record": "ALSA-2026:54290", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-13T00:00:00Z", "date_only": false, "value": "2026-08-13T00:00:00Z", "kind": "milestone", "label": "Published", "source": "osv_almalinux \u00b7 ALSA-2026:54481", "record": "ALSA-2026:54481", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T00:00:00Z", "date_only": false, "value": "2026-08-13T00:00:00Z", "kind": "milestone", "label": "Published", "source": "osv_almalinux \u00b7 ALSA-2026:54484", "record": "ALSA-2026:54484", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T06:00:54.687Z", "date_only": false, "value": "2026-08-13T06:00:54.687255Z", "kind": "milestone", "label": "Published", "source": "osv_rocky \u00b7 RLSA-2026:54290", "record": "RLSA-2026:54290", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T07:52:40Z", "date_only": false, "value": "2026-08-13T07:52:40+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-13T07:52:40Z", "date_only": false, "value": "2026-08-13T07:52:40+00:00", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T07:52:40Z", "date_only": false, "value": "2026-08-13T07:52:40+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "vulnerabilities.0.remediations.0.date", "metric_role": "patch", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T08:40:09Z", "date_only": false, "value": "2026-08-13T08:40:09+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-13T08:40:09Z", "date_only": false, "value": "2026-08-13T08:40:09+00:00", "kind": "milestone", "label": "Published", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T08:40:09Z", "date_only": false, "value": "2026-08-13T08:40:09+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "vulnerabilities.0.remediations.0.date", "metric_role": "patch", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T09:16:18Z", "date_only": false, "value": "2026-08-13T09:16:18Z", "kind": "other", "label": "Updated", "source": "osv_almalinux \u00b7 ALSA-2026:54484", "record": "ALSA-2026:54484", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-13T09:17:04Z", "date_only": false, "value": "2026-08-13T09:17:04Z", "kind": "other", "label": "Updated", "source": "osv_almalinux \u00b7 ALSA-2026:54481", "record": "ALSA-2026:54481", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-13T12:04:44.690Z", "date_only": false, "value": "2026-08-13T12:04:44.690633Z", "kind": "milestone", "label": "Published", "source": "osv_rocky \u00b7 RLSA-2026:54484", "record": "RLSA-2026:54484", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T12:08:06.655Z", "date_only": false, "value": "2026-08-13T12:08:06.655555Z", "kind": "milestone", "label": "Published", "source": "osv_rocky \u00b7 RLSA-2026:54481", "record": "RLSA-2026:54481", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T12:10:09Z", "date_only": false, "value": "2026-08-13T12:10:09Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-MI51590", "record": "CLEANSTART-2026-MI51590", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:34:56Z", "date_only": false, "value": "2026-08-13T16:34:56Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ABI3AUDIT-CVE-2026-45409", "record": "BREW-ABI3AUDIT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:11Z", "date_only": false, "value": "2026-08-13T16:35:11Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ADVAI-CLI-CVE-2026-45409", "record": "BREW-ADVAI-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:12Z", "date_only": false, "value": "2026-08-13T16:35:12Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AIDER-CVE-2026-45409", "record": "BREW-AIDER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:13Z", "date_only": false, "value": "2026-08-13T16:35:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AIRSHARE-CVE-2026-45409", "record": "BREW-AIRSHARE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:13Z", "date_only": false, "value": "2026-08-13T16:35:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AIVEN-CLIENT-CVE-2026-45409", "record": "BREW-AIVEN-CLIENT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:13Z", "date_only": false, "value": "2026-08-13T16:35:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ALOT-CVE-2026-45409", "record": "BREW-ALOT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:16Z", "date_only": false, "value": "2026-08-13T16:35:16Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANIMDL-CVE-2026-45409", "record": "BREW-ANIMDL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:22Z", "date_only": false, "value": "2026-08-13T16:35:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANSIBLE-CVE-2026-45409", "record": "BREW-ANSIBLE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:22Z", "date_only": false, "value": "2026-08-13T16:35:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@10-CVE-2026-45409", "record": "BREW-ANSIBLE@10-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:22Z", "date_only": false, "value": "2026-08-13T16:35:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@12-CVE-2026-45409", "record": "BREW-ANSIBLE@12-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:22Z", "date_only": false, "value": "2026-08-13T16:35:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@13-CVE-2026-45409", "record": "BREW-ANSIBLE@13-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:23Z", "date_only": false, "value": "2026-08-13T16:35:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@9-CVE-2026-45409", "record": "BREW-ANSIBLE@9-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:55Z", "date_only": false, "value": "2026-08-13T16:35:55Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-APM-CVE-2026-45409", "record": "BREW-APM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:35:55Z", "date_only": false, "value": "2026-08-13T16:35:55Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-APPRISE-CVE-2026-45409", "record": "BREW-APPRISE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:36:04Z", "date_only": false, "value": "2026-08-13T16:36:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AQTINSTALL-CVE-2026-45409", "record": "BREW-AQTINSTALL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:36:04Z", "date_only": false, "value": "2026-08-13T16:36:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ARCHGW-CVE-2026-45409", "record": "BREW-ARCHGW-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:36:07Z", "date_only": false, "value": "2026-08-13T16:36:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ARJUN-CVE-2026-45409", "record": "BREW-ARJUN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:01Z", "date_only": false, "value": "2026-08-13T16:37:01Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AWS-ELASTICBEANSTALK-CVE-2026-45409", "record": "BREW-AWS-ELASTICBEANSTALK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:01Z", "date_only": false, "value": "2026-08-13T16:37:01Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AWS-GOOGLE-AUTH-CVE-2026-45409", "record": "BREW-AWS-GOOGLE-AUTH-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:01Z", "date_only": false, "value": "2026-08-13T16:37:01Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AWS-SAM-CLI-CVE-2026-45409", "record": "BREW-AWS-SAM-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:01Z", "date_only": false, "value": "2026-08-13T16:37:01Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AWS-SSO-UTIL-CVE-2026-45409", "record": "BREW-AWS-SSO-UTIL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:01Z", "date_only": false, "value": "2026-08-13T16:37:01Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AWSCURL-CVE-2026-45409", "record": "BREW-AWSCURL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:03Z", "date_only": false, "value": "2026-08-13T16:37:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-AZURE-CLI-CVE-2026-45409", "record": "BREW-AZURE-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:03Z", "date_only": false, "value": "2026-08-13T16:37:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-B2-TOOLS-CVE-2026-45409", "record": "BREW-B2-TOOLS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:03Z", "date_only": false, "value": "2026-08-13T16:37:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-B4-CVE-2026-45409", "record": "BREW-B4-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:03Z", "date_only": false, "value": "2026-08-13T16:37:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BACKGROUNDREMOVER-CVE-2026-45409", "record": "BREW-BACKGROUNDREMOVER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:04Z", "date_only": false, "value": "2026-08-13T16:37:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BAGELS-CVE-2026-45409", "record": "BREW-BAGELS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:04Z", "date_only": false, "value": "2026-08-13T16:37:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BANDCAMP-DL-CVE-2026-45409", "record": "BREW-BANDCAMP-DL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:10Z", "date_only": false, "value": "2026-08-13T16:37:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BBOT-CVE-2026-45409", "record": "BREW-BBOT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:11Z", "date_only": false, "value": "2026-08-13T16:37:11Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BEETS-CVE-2026-45409", "record": "BREW-BEETS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:37:13Z", "date_only": false, "value": "2026-08-13T16:37:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BILIX-CVE-2026-45409", "record": "BREW-BILIX-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:09Z", "date_only": false, "value": "2026-08-13T16:38:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BLACK-CVE-2026-45409", "record": "BREW-BLACK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:22Z", "date_only": false, "value": "2026-08-13T16:38:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BORGMATIC-CVE-2026-45409", "record": "BREW-BORGMATIC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:24Z", "date_only": false, "value": "2026-08-13T16:38:24Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BPYTHON-CVE-2026-45409", "record": "BREW-BPYTHON-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:25Z", "date_only": false, "value": "2026-08-13T16:38:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BTCLI-CVE-2026-45409", "record": "BREW-BTCLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:25Z", "date_only": false, "value": "2026-08-13T16:38:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BUMP-MY-VERSION-CVE-2026-45409", "record": "BREW-BUMP-MY-VERSION-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:38:28Z", "date_only": false, "value": "2026-08-13T16:38:28Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-BZT-CVE-2026-45409", "record": "BREW-BZT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:03Z", "date_only": false, "value": "2026-08-13T16:39:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CENSYS-CVE-2026-45409", "record": "BREW-CENSYS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:03Z", "date_only": false, "value": "2026-08-13T16:39:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CERTBOT-CVE-2026-45409", "record": "BREW-CERTBOT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:03Z", "date_only": false, "value": "2026-08-13T16:39:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CERTSYNC-CVE-2026-45409", "record": "BREW-CERTSYNC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:03Z", "date_only": false, "value": "2026-08-13T16:39:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CF2TF-CVE-2026-45409", "record": "BREW-CF2TF-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:06Z", "date_only": false, "value": "2026-08-13T16:39:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHARM-TOOLS-CVE-2026-45409", "record": "BREW-CHARM-TOOLS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:06Z", "date_only": false, "value": "2026-08-13T16:39:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHARMCRAFT-CVE-2026-45409", "record": "BREW-CHARMCRAFT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:06Z", "date_only": false, "value": "2026-08-13T16:39:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHATBLADE-CVE-2026-45409", "record": "BREW-CHATBLADE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:10Z", "date_only": false, "value": "2026-08-13T16:39:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHECK-JSONSCHEMA-CVE-2026-45409", "record": "BREW-CHECK-JSONSCHEMA-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:32Z", "date_only": false, "value": "2026-08-13T16:39:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHECKDMARC-CVE-2026-45409", "record": "BREW-CHECKDMARC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:32Z", "date_only": false, "value": "2026-08-13T16:39:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CHECKOV-CVE-2026-45409", "record": "BREW-CHECKOV-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:39:42Z", "date_only": false, "value": "2026-08-13T16:39:42Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CINECLI-CVE-2026-45409", "record": "BREW-CINECLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:09Z", "date_only": false, "value": "2026-08-13T16:40:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CLOUDFLARE-CLI4-CVE-2026-45409", "record": "BREW-CLOUDFLARE-CLI4-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:09Z", "date_only": false, "value": "2026-08-13T16:40:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CLOUDFORMATION-CLI-CVE-2026-45409", "record": "BREW-CLOUDFORMATION-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:09Z", "date_only": false, "value": "2026-08-13T16:40:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CLOUDSPLAINING-CVE-2026-45409", "record": "BREW-CLOUDSPLAINING-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:10Z", "date_only": false, "value": "2026-08-13T16:40:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-COBO-CLI-CVE-2026-45409", "record": "BREW-COBO-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:10Z", "date_only": false, "value": "2026-08-13T16:40:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-COCONUT-CVE-2026-45409", "record": "BREW-COCONUT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:10Z", "date_only": false, "value": "2026-08-13T16:40:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CODECOV-CLI-CVE-2026-45409", "record": "BREW-CODECOV-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:40:10Z", "date_only": false, "value": "2026-08-13T16:40:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CODELIMIT-CVE-2026-45409", "record": "BREW-CODELIMIT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:05Z", "date_only": false, "value": "2026-08-13T16:41:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CONAN-CVE-2026-45409", "record": "BREW-CONAN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:05Z", "date_only": false, "value": "2026-08-13T16:41:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CONAN@1-CVE-2026-45409", "record": "BREW-CONAN@1-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:05Z", "date_only": false, "value": "2026-08-13T16:41:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CONDA-LOCK-CVE-2026-45409", "record": "BREW-CONDA-LOCK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:06Z", "date_only": false, "value": "2026-08-13T16:41:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-COOKIECUTTER-CVE-2026-45409", "record": "BREW-COOKIECUTTER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:15Z", "date_only": false, "value": "2026-08-13T16:41:15Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CRUFT-CVE-2026-45409", "record": "BREW-CRUFT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:41:16Z", "date_only": false, "value": "2026-08-13T16:41:16Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CRYTIC-COMPILE-CVE-2026-45409", "record": "BREW-CRYTIC-COMPILE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:04Z", "date_only": false, "value": "2026-08-13T16:42:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CVE-BIN-TOOL-CVE-2026-45409", "record": "BREW-CVE-BIN-TOOL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:07Z", "date_only": false, "value": "2026-08-13T16:42:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CYCLONEDX-PYTHON-CVE-2026-45409", "record": "BREW-CYCLONEDX-PYTHON-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:07Z", "date_only": false, "value": "2026-08-13T16:42:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-CYCODE-CVE-2026-45409", "record": "BREW-CYCODE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:09Z", "date_only": false, "value": "2026-08-13T16:42:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DATALAD-CVE-2026-45409", "record": "BREW-DATALAD-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:09Z", "date_only": false, "value": "2026-08-13T16:42:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DATASETTE-CVE-2026-45409", "record": "BREW-DATASETTE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:42:26Z", "date_only": false, "value": "2026-08-13T16:42:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DETECT-SECRETS-CVE-2026-45409", "record": "BREW-DETECT-SECRETS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:10Z", "date_only": false, "value": "2026-08-13T16:43:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DNSGEN-CVE-2026-45409", "record": "BREW-DNSGEN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:20Z", "date_only": false, "value": "2026-08-13T16:43:20Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DNSROBOCERT-CVE-2026-45409", "record": "BREW-DNSROBOCERT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:20Z", "date_only": false, "value": "2026-08-13T16:43:20Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DNSTWIST-CVE-2026-45409", "record": "BREW-DNSTWIST-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:20Z", "date_only": false, "value": "2026-08-13T16:43:20Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DOCKER-SQUASH-CVE-2026-45409", "record": "BREW-DOCKER-SQUASH-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:22Z", "date_only": false, "value": "2026-08-13T16:43:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DOLPHIE-CVE-2026-45409", "record": "BREW-DOLPHIE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:23Z", "date_only": false, "value": "2026-08-13T16:43:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DOTDROP-CVE-2026-45409", "record": "BREW-DOTDROP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:43:57Z", "date_only": false, "value": "2026-08-13T16:43:57Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DSTACK-CVE-2026-45409", "record": "BREW-DSTACK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:44:03Z", "date_only": false, "value": "2026-08-13T16:44:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DUPLICITY-CVE-2026-45409", "record": "BREW-DUPLICITY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:44:03Z", "date_only": false, "value": "2026-08-13T16:44:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-DVC-CVE-2026-45409", "record": "BREW-DVC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:44:52Z", "date_only": false, "value": "2026-08-13T16:44:52Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ECS-DEPLOY-CVE-2026-45409", "record": "BREW-ECS-DEPLOY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:45:05Z", "date_only": false, "value": "2026-08-13T16:45:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ENEX2NOTION-CVE-2026-45409", "record": "BREW-ENEX2NOTION-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:45:08Z", "date_only": false, "value": "2026-08-13T16:45:08Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ESPHOME-CVE-2026-45409", "record": "BREW-ESPHOME-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:45:10Z", "date_only": false, "value": "2026-08-13T16:45:10Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-EVERNOTE-BACKUP-CVE-2026-45409", "record": "BREW-EVERNOTE-BACKUP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:46:30Z", "date_only": false, "value": "2026-08-13T16:46:30Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FANFICFARE-CVE-2026-45409", "record": "BREW-FANFICFARE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:46:30Z", "date_only": false, "value": "2026-08-13T16:46:30Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FASTAPI-CVE-2026-45409", "record": "BREW-FASTAPI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:46:31Z", "date_only": false, "value": "2026-08-13T16:46:31Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FASTMCP-CVE-2026-45409", "record": "BREW-FASTMCP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:46:31Z", "date_only": false, "value": "2026-08-13T16:46:31Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FAVA-CVE-2026-45409", "record": "BREW-FAVA-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:46:32Z", "date_only": false, "value": "2026-08-13T16:46:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FDROIDSERVER-CVE-2026-45409", "record": "BREW-FDROIDSERVER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:47:29Z", "date_only": false, "value": "2026-08-13T16:47:29Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FLEXGET-CVE-2026-45409", "record": "BREW-FLEXGET-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:47:29Z", "date_only": false, "value": "2026-08-13T16:47:29Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FLIT-CVE-2026-45409", "record": "BREW-FLIT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:48:19Z", "date_only": false, "value": "2026-08-13T16:48:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FORBIDDEN-CVE-2026-45409", "record": "BREW-FORBIDDEN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:48:22Z", "date_only": false, "value": "2026-08-13T16:48:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-FRED-CVE-2026-45409", "record": "BREW-FRED-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:49:04Z", "date_only": false, "value": "2026-08-13T16:49:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GALLERY-DL-CVE-2026-45409", "record": "BREW-GALLERY-DL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:49:04Z", "date_only": false, "value": "2026-08-13T16:49:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GAMDL-CVE-2026-45409", "record": "BREW-GAMDL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:49:07Z", "date_only": false, "value": "2026-08-13T16:49:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GCALCLI-CVE-2026-45409", "record": "BREW-GCALCLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:49:55Z", "date_only": false, "value": "2026-08-13T16:49:55Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GDOWN-CVE-2026-45409", "record": "BREW-GDOWN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:50:00Z", "date_only": false, "value": "2026-08-13T16:50:00Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GGSHIELD-CVE-2026-45409", "record": "BREW-GGSHIELD-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:50:34Z", "date_only": false, "value": "2026-08-13T16:50:34Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GIMME-AWS-CREDS-CVE-2026-45409", "record": "BREW-GIMME-AWS-CREDS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:50:41Z", "date_only": false, "value": "2026-08-13T16:50:41Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GIT-REVIEW-CVE-2026-45409", "record": "BREW-GIT-REVIEW-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:51:22Z", "date_only": false, "value": "2026-08-13T16:51:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GITINGEST-CVE-2026-45409", "record": "BREW-GITINGEST-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:51:23Z", "date_only": false, "value": "2026-08-13T16:51:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GLANCES-CVE-2026-45409", "record": "BREW-GLANCES-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:53:15Z", "date_only": false, "value": "2026-08-13T16:53:15Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GOOLABS-CVE-2026-45409", "record": "BREW-GOOLABS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:53:15Z", "date_only": false, "value": "2026-08-13T16:53:15Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GORILLA-CLI-CVE-2026-45409", "record": "BREW-GORILLA-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:54:46Z", "date_only": false, "value": "2026-08-13T16:54:46Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GPTLINE-CVE-2026-45409", "record": "BREW-GPTLINE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:54:46Z", "date_only": false, "value": "2026-08-13T16:54:46Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GPTME-CVE-2026-45409", "record": "BREW-GPTME-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:55:19Z", "date_only": false, "value": "2026-08-13T16:55:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GRAYSKULL-CVE-2026-45409", "record": "BREW-GRAYSKULL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:55:20Z", "date_only": false, "value": "2026-08-13T16:55:20Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GRIP-CVE-2026-45409", "record": "BREW-GRIP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:55:21Z", "date_only": false, "value": "2026-08-13T16:55:21Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GROKMIRROR-CVE-2026-45409", "record": "BREW-GROKMIRROR-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:55:28Z", "date_only": false, "value": "2026-08-13T16:55:28Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-GYB-CVE-2026-45409", "record": "BREW-GYB-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:21Z", "date_only": false, "value": "2026-08-13T16:56:21Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HATCH-CVE-2026-45409", "record": "BREW-HATCH-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:26Z", "date_only": false, "value": "2026-08-13T16:56:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HERMES-AGENT-CVE-2026-45409", "record": "BREW-HERMES-AGENT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:26Z", "date_only": false, "value": "2026-08-13T16:56:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HF-CVE-2026-45409", "record": "BREW-HF-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:27Z", "date_only": false, "value": "2026-08-13T16:56:27Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HOMEASSISTANT-CLI-CVE-2026-45409", "record": "BREW-HOMEASSISTANT-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:27Z", "date_only": false, "value": "2026-08-13T16:56:27Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HOWDOI-CVE-2026-45409", "record": "BREW-HOWDOI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:56:28Z", "date_only": false, "value": "2026-08-13T16:56:28Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HTTP-PROMPT-CVE-2026-45409", "record": "BREW-HTTP-PROMPT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:57:19Z", "date_only": false, "value": "2026-08-13T16:57:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HTTPIE-CVE-2026-45409", "record": "BREW-HTTPIE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:57:19Z", "date_only": false, "value": "2026-08-13T16:57:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HTTPTAP-CVE-2026-45409", "record": "BREW-HTTPTAP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:57:19Z", "date_only": false, "value": "2026-08-13T16:57:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HTTPX2-CVE-2026-45409", "record": "BREW-HTTPX2-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:57:19Z", "date_only": false, "value": "2026-08-13T16:57:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-HUMANBOUND-CVE-2026-45409", "record": "BREW-HUMANBOUND-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:59:03Z", "date_only": false, "value": "2026-08-13T16:59:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ICLOUDPD-CVE-2026-45409", "record": "BREW-ICLOUDPD-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:59:59Z", "date_only": false, "value": "2026-08-13T16:59:59Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-INSTALOADER-CVE-2026-45409", "record": "BREW-INSTALOADER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:59:59Z", "date_only": false, "value": "2026-08-13T16:59:59Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-INSTALOOTER-CVE-2026-45409", "record": "BREW-INSTALOOTER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:59:59Z", "date_only": false, "value": "2026-08-13T16:59:59Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-INTERNETARCHIVE-CVE-2026-45409", "record": "BREW-INTERNETARCHIVE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T16:59:59Z", "date_only": false, "value": "2026-08-13T16:59:59Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-IOCEXTRACT-CVE-2026-45409", "record": "BREW-IOCEXTRACT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:00:03Z", "date_only": false, "value": "2026-08-13T17:00:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ISPONSORBLOCKTV-CVE-2026-45409", "record": "BREW-ISPONSORBLOCKTV-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:00:48Z", "date_only": false, "value": "2026-08-13T17:00:48Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-JENKINS-JOB-BUILDER-CVE-2026-45409", "record": "BREW-JENKINS-JOB-BUILDER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:00:58Z", "date_only": false, "value": "2026-08-13T17:00:58Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-JIRATUI-CVE-2026-45409", "record": "BREW-JIRATUI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:00:58Z", "date_only": false, "value": "2026-08-13T17:00:58Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-JOHNNYDEP-CVE-2026-45409", "record": "BREW-JOHNNYDEP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:18Z", "date_only": false, "value": "2026-08-13T17:01:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-JUPYTERLAB-CVE-2026-45409", "record": "BREW-JUPYTERLAB-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:21Z", "date_only": false, "value": "2026-08-13T17:01:21Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-KASKADE-CVE-2026-45409", "record": "BREW-KASKADE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:22Z", "date_only": false, "value": "2026-08-13T17:01:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-KEEPER-COMMANDER-CVE-2026-45409", "record": "BREW-KEEPER-COMMANDER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:22Z", "date_only": false, "value": "2026-08-13T17:01:22Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-KHAOS-CVE-2026-45409", "record": "BREW-KHAOS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:40Z", "date_only": false, "value": "2026-08-13T17:01:40Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-KIMI-CLI-CVE-2026-45409", "record": "BREW-KIMI-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:01:43Z", "date_only": false, "value": "2026-08-13T17:01:43Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-KNOT-RESOLVER-CVE-2026-45409", "record": "BREW-KNOT-RESOLVER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:02:14Z", "date_only": false, "value": "2026-08-13T17:02:14Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LANGGRAPH-CLI-CVE-2026-45409", "record": "BREW-LANGGRAPH-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:02:43Z", "date_only": false, "value": "2026-08-13T17:02:43Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LEXICON-CVE-2026-45409", "record": "BREW-LEXICON-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:02:51Z", "date_only": false, "value": "2026-08-13T17:02:51Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LINODE-CLI-CVE-2026-45409", "record": "BREW-LINODE-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:02:55Z", "date_only": false, "value": "2026-08-13T17:02:55Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LITECLI-CVE-2026-45409", "record": "BREW-LITECLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:03:00Z", "date_only": false, "value": "2026-08-13T17:03:00Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LLM-CVE-2026-45409", "record": "BREW-LLM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:03:02Z", "date_only": false, "value": "2026-08-13T17:03:02Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LOCALSTACK-CVE-2026-45409", "record": "BREW-LOCALSTACK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:03:02Z", "date_only": false, "value": "2026-08-13T17:03:02Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LOCUST-CVE-2026-45409", "record": "BREW-LOCUST-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:03:07Z", "date_only": false, "value": "2026-08-13T17:03:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-LUE-READER-CVE-2026-45409", "record": "BREW-LUE-READER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:10:52Z", "date_only": false, "value": "2026-08-13T17:10:52Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MAGIC-WORMHOLE-CVE-2026-45409", "record": "BREW-MAGIC-WORMHOLE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:11:30Z", "date_only": false, "value": "2026-08-13T17:11:30Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MAIGRET-CVE-2026-45409", "record": "BREW-MAIGRET-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:11:34Z", "date_only": false, "value": "2026-08-13T17:11:34Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MAPPROXY-CVE-2026-45409", "record": "BREW-MAPPROXY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:13:13Z", "date_only": false, "value": "2026-08-13T17:13:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MCP-ATLASSIAN-CVE-2026-45409", "record": "BREW-MCP-ATLASSIAN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:13:13Z", "date_only": false, "value": "2026-08-13T17:13:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MCP-GOOGLE-SHEETS-CVE-2026-45409", "record": "BREW-MCP-GOOGLE-SHEETS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:13:13Z", "date_only": false, "value": "2026-08-13T17:13:13Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MCP-PROXY-CVE-2026-45409", "record": "BREW-MCP-PROXY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:13:14Z", "date_only": false, "value": "2026-08-13T17:13:14Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MCPM-CVE-2026-45409", "record": "BREW-MCPM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:13:16Z", "date_only": false, "value": "2026-08-13T17:13:16Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MENTAT-CVE-2026-45409", "record": "BREW-MENTAT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:16Z", "date_only": false, "value": "2026-08-13T17:14:16Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MISTRAL-VIBE-CVE-2026-45409", "record": "BREW-MISTRAL-VIBE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:16Z", "date_only": false, "value": "2026-08-13T17:14:16Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MK-CVE-2026-45409", "record": "BREW-MK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:17Z", "date_only": false, "value": "2026-08-13T17:14:17Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MKDOCS-MATERIAL-CVE-2026-45409", "record": "BREW-MKDOCS-MATERIAL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:17Z", "date_only": false, "value": "2026-08-13T17:14:17Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MLX-LM-CVE-2026-45409", "record": "BREW-MLX-LM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:17Z", "date_only": false, "value": "2026-08-13T17:14:17Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MODAL-CVE-2026-45409", "record": "BREW-MODAL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:18Z", "date_only": false, "value": "2026-08-13T17:14:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MOLECULE-CVE-2026-45409", "record": "BREW-MOLECULE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:18Z", "date_only": false, "value": "2026-08-13T17:14:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MONGO-ORCHESTRATION-CVE-2026-45409", "record": "BREW-MONGO-ORCHESTRATION-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:32Z", "date_only": false, "value": "2026-08-13T17:14:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MOODLE-DL-CVE-2026-45409", "record": "BREW-MOODLE-DL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:14:37Z", "date_only": false, "value": "2026-08-13T17:14:37Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MOTO-CVE-2026-45409", "record": "BREW-MOTO-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:16:44Z", "date_only": false, "value": "2026-08-13T17:16:44Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-MYCLI-CVE-2026-45409", "record": "BREW-MYCLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:18:40Z", "date_only": false, "value": "2026-08-13T17:18:40Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-NOTIFIERS-CVE-2026-45409", "record": "BREW-NOTIFIERS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:19:23Z", "date_only": false, "value": "2026-08-13T17:19:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OCTODNS-CVE-2026-45409", "record": "BREW-OCTODNS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:19:23Z", "date_only": false, "value": "2026-08-13T17:19:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OKTA-AWSCLI-CVE-2026-45409", "record": "BREW-OKTA-AWSCLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:19:23Z", "date_only": false, "value": "2026-08-13T17:19:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OMNARA-CVE-2026-45409", "record": "BREW-OMNARA-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:21:25Z", "date_only": false, "value": "2026-08-13T17:21:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ONIONPROBE-CVE-2026-45409", "record": "BREW-ONIONPROBE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:21:25Z", "date_only": false, "value": "2026-08-13T17:21:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ONLYKEY-AGENT-CVE-2026-45409", "record": "BREW-ONLYKEY-AGENT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:21:32Z", "date_only": false, "value": "2026-08-13T17:21:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OPENAI-WHISPER-CVE-2026-45409", "record": "BREW-OPENAI-WHISPER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:24:07Z", "date_only": false, "value": "2026-08-13T17:24:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OPENSTACKCLIENT-CVE-2026-45409", "record": "BREW-OPENSTACKCLIENT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:24:18Z", "date_only": false, "value": "2026-08-13T17:24:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OSC-CLI-CVE-2026-45409", "record": "BREW-OSC-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:24:19Z", "date_only": false, "value": "2026-08-13T17:24:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OTERM-CVE-2026-45409", "record": "BREW-OTERM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:24:19Z", "date_only": false, "value": "2026-08-13T17:24:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OTTERDOG-CVE-2026-45409", "record": "BREW-OTTERDOG-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:32Z", "date_only": false, "value": "2026-08-13T17:25:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PAPIS-CVE-2026-45409", "record": "BREW-PAPIS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:33Z", "date_only": false, "value": "2026-08-13T17:25:33Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PARSEDMARC-CVE-2026-45409", "record": "BREW-PARSEDMARC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:33Z", "date_only": false, "value": "2026-08-13T17:25:33Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PASS-IMPORT-CVE-2026-45409", "record": "BREW-PASS-IMPORT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:44Z", "date_only": false, "value": "2026-08-13T17:25:44Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PDFLY-CVE-2026-45409", "record": "BREW-PDFLY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:44Z", "date_only": false, "value": "2026-08-13T17:25:44Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PDM-CVE-2026-45409", "record": "BREW-PDM-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:25:49Z", "date_only": false, "value": "2026-08-13T17:25:49Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PELICAN-CVE-2026-45409", "record": "BREW-PELICAN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:26:03Z", "date_only": false, "value": "2026-08-13T17:26:03Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PFERD-CVE-2026-45409", "record": "BREW-PFERD-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:18Z", "date_only": false, "value": "2026-08-13T17:28:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PIECES-CLI-CVE-2026-45409", "record": "BREW-PIECES-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:21Z", "date_only": false, "value": "2026-08-13T17:28:21Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PIP-AUDIT-CVE-2026-45409", "record": "BREW-PIP-AUDIT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:24Z", "date_only": false, "value": "2026-08-13T17:28:24Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PLATFORMIO-CVE-2026-45409", "record": "BREW-PLATFORMIO-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:25Z", "date_only": false, "value": "2026-08-13T17:28:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-POCKET-TTS-CVE-2026-45409", "record": "BREW-POCKET-TTS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:25Z", "date_only": false, "value": "2026-08-13T17:28:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-POCSUITE3-CVE-2026-45409", "record": "BREW-POCSUITE3-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:25Z", "date_only": false, "value": "2026-08-13T17:28:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PODCAST-ARCHIVER-CVE-2026-45409", "record": "BREW-PODCAST-ARCHIVER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:26Z", "date_only": false, "value": "2026-08-13T17:28:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-POETRY-CVE-2026-45409", "record": "BREW-POETRY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:26Z", "date_only": false, "value": "2026-08-13T17:28:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-POLICY_SENTRY-CVE-2026-45409", "record": "BREW-POLICY_SENTRY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:28:48Z", "date_only": false, "value": "2026-08-13T17:28:48Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-POSTING-CVE-2026-45409", "record": "BREW-POSTING-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:29:23Z", "date_only": false, "value": "2026-08-13T17:29:23Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PROWLER-CVE-2026-45409", "record": "BREW-PROWLER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:29:24Z", "date_only": false, "value": "2026-08-13T17:29:24Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PULP-CLI-CVE-2026-45409", "record": "BREW-PULP-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:29:35Z", "date_only": false, "value": "2026-08-13T17:29:35Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PWNTOOLS-CVE-2026-45409", "record": "BREW-PWNTOOLS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:29:59Z", "date_only": false, "value": "2026-08-13T17:29:59Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-PYTR-CVE-2026-45409", "record": "BREW-PYTR-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:07Z", "date_only": false, "value": "2026-08-13T17:32:07Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RAPID-MLX-CVE-2026-45409", "record": "BREW-RAPID-MLX-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:08Z", "date_only": false, "value": "2026-08-13T17:32:08Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RAVEN-CVE-2026-45409", "record": "BREW-RAVEN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:08Z", "date_only": false, "value": "2026-08-13T17:32:08Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RAWDOG-CVE-2026-45409", "record": "BREW-RAWDOG-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:25Z", "date_only": false, "value": "2026-08-13T17:32:25Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RECON-NG-CVE-2026-45409", "record": "BREW-RECON-NG-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:31Z", "date_only": false, "value": "2026-08-13T17:32:31Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-RICH-CLI-CVE-2026-45409", "record": "BREW-RICH-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:32Z", "date_only": false, "value": "2026-08-13T17:32:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ROBOT-FRAMEWORK-CVE-2026-45409", "record": "BREW-ROBOT-FRAMEWORK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:32:32Z", "date_only": false, "value": "2026-08-13T17:32:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ROCKCRAFT-CVE-2026-45409", "record": "BREW-ROCKCRAFT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:33:32Z", "date_only": false, "value": "2026-08-13T17:33:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-S3QL-CVE-2026-45409", "record": "BREW-S3QL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:33:32Z", "date_only": false, "value": "2026-08-13T17:33:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SACAD-CVE-2026-45409", "record": "BREW-SACAD-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:33:32Z", "date_only": false, "value": "2026-08-13T17:33:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SAFETY-CVE-2026-45409", "record": "BREW-SAFETY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:33:32Z", "date_only": false, "value": "2026-08-13T17:33:32Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SAIL-CVE-2026-45409", "record": "BREW-SAIL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:18Z", "date_only": false, "value": "2026-08-13T17:34:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SCEPTRE-CVE-2026-45409", "record": "BREW-SCEPTRE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:18Z", "date_only": false, "value": "2026-08-13T17:34:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SCHEMATHESIS-CVE-2026-45409", "record": "BREW-SCHEMATHESIS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:19Z", "date_only": false, "value": "2026-08-13T17:34:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SCOUTSUITE-CVE-2026-45409", "record": "BREW-SCOUTSUITE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:19Z", "date_only": false, "value": "2026-08-13T17:34:19Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SCRAPY-CVE-2026-45409", "record": "BREW-SCRAPY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:27Z", "date_only": false, "value": "2026-08-13T17:34:27Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SEARCH-THAT-HASH-CVE-2026-45409", "record": "BREW-SEARCH-THAT-HASH-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:27Z", "date_only": false, "value": "2026-08-13T17:34:27Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SEMGREP-CVE-2026-45409", "record": "BREW-SEMGREP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:36Z", "date_only": false, "value": "2026-08-13T17:34:36Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SGR-CVE-2026-45409", "record": "BREW-SGR-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:38Z", "date_only": false, "value": "2026-08-13T17:34:38Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SHERLOCK-CVE-2026-45409", "record": "BREW-SHERLOCK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:39Z", "date_only": false, "value": "2026-08-13T17:34:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SHODAN-CVE-2026-45409", "record": "BREW-SHODAN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:39Z", "date_only": false, "value": "2026-08-13T17:34:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SHUB-CVE-2026-45409", "record": "BREW-SHUB-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:39Z", "date_only": false, "value": "2026-08-13T17:34:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SICKCHILL-CVE-2026-45409", "record": "BREW-SICKCHILL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:39Z", "date_only": false, "value": "2026-08-13T17:34:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SIGMA-CLI-CVE-2026-45409", "record": "BREW-SIGMA-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:39Z", "date_only": false, "value": "2026-08-13T17:34:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SIGSTORE-CVE-2026-45409", "record": "BREW-SIGSTORE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:41Z", "date_only": false, "value": "2026-08-13T17:34:41Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SLITHER-ANALYZER-CVE-2026-45409", "record": "BREW-SLITHER-ANALYZER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:34:42Z", "date_only": false, "value": "2026-08-13T17:34:42Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SNAKEMAKE-CVE-2026-45409", "record": "BREW-SNAKEMAKE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:35:45Z", "date_only": false, "value": "2026-08-13T17:35:45Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SNAPCRAFT-CVE-2026-45409", "record": "BREW-SNAPCRAFT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:35:47Z", "date_only": false, "value": "2026-08-13T17:35:47Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SNOWFLAKE-CLI-CVE-2026-45409", "record": "BREW-SNOWFLAKE-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:35:48Z", "date_only": false, "value": "2026-08-13T17:35:48Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SNYK-AGENT-SCAN-CVE-2026-45409", "record": "BREW-SNYK-AGENT-SCAN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:35:50Z", "date_only": false, "value": "2026-08-13T17:35:50Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SOLC-SELECT-CVE-2026-45409", "record": "BREW-SOLC-SELECT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:35:57Z", "date_only": false, "value": "2026-08-13T17:35:57Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SPHINX-DOC-CVE-2026-45409", "record": "BREW-SPHINX-DOC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:08Z", "date_only": false, "value": "2026-08-13T17:41:08Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-STANDARDEBOOKS-CVE-2026-45409", "record": "BREW-STANDARDEBOOKS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:09Z", "date_only": false, "value": "2026-08-13T17:41:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-STRANDS-AGENTS-SOPS-CVE-2026-45409", "record": "BREW-STRANDS-AGENTS-SOPS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:09Z", "date_only": false, "value": "2026-08-13T17:41:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-STREAMLINK-CVE-2026-45409", "record": "BREW-STREAMLINK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:09Z", "date_only": false, "value": "2026-08-13T17:41:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-STREAMRIP-CVE-2026-45409", "record": "BREW-STREAMRIP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:17Z", "date_only": false, "value": "2026-08-13T17:41:17Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SUBLIMINAL-CVE-2026-45409", "record": "BREW-SUBLIMINAL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:41:39Z", "date_only": false, "value": "2026-08-13T17:41:39Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SVTPLAY-DL-CVE-2026-45409", "record": "BREW-SVTPLAY-DL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:42:12Z", "date_only": false, "value": "2026-08-13T17:42:12Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SYSAIDMIN-CVE-2026-45409", "record": "BREW-SYSAIDMIN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:43:02Z", "date_only": false, "value": "2026-08-13T17:43:02Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TELEGRAM-SEND-CVE-2026-45409", "record": "BREW-TELEGRAM-SEND-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:43:04Z", "date_only": false, "value": "2026-08-13T17:43:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TERN-CVE-2026-45409", "record": "BREW-TERN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:43:26Z", "date_only": false, "value": "2026-08-13T17:43:26Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-THEHARVESTER-CVE-2026-45409", "record": "BREW-THEHARVESTER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:09Z", "date_only": false, "value": "2026-08-13T17:44:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TMT-CVE-2026-45409", "record": "BREW-TMT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:33Z", "date_only": false, "value": "2026-08-13T17:44:33Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TOOT-CVE-2026-45409", "record": "BREW-TOOT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:50Z", "date_only": false, "value": "2026-08-13T17:44:50Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TORRRA-CVE-2026-45409", "record": "BREW-TORRRA-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TREZOR-AGENT-CVE-2026-45409", "record": "BREW-TREZOR-AGENT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TUBEUP-CVE-2026-45409", "record": "BREW-TUBEUP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TVNAMER-CVE-2026-45409", "record": "BREW-TVNAMER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TWARC-CVE-2026-45409", "record": "BREW-TWARC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TWINE-CVE-2026-45409", "record": "BREW-TWINE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:44:53Z", "date_only": false, "value": "2026-08-13T17:44:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-TWTXT-CVE-2026-45409", "record": "BREW-TWTXT-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:46:18Z", "date_only": false, "value": "2026-08-13T17:46:18Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-URLWATCH-CVE-2026-45409", "record": "BREW-URLWATCH-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:46:24Z", "date_only": false, "value": "2026-08-13T17:46:24Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-UVICORN-CVE-2026-45409", "record": "BREW-UVICORN-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:46:47Z", "date_only": false, "value": "2026-08-13T17:46:47Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-VDIRSYNCER-CVE-2026-45409", "record": "BREW-VDIRSYNCER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:46:53Z", "date_only": false, "value": "2026-08-13T17:46:53Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-VIRT-MANAGER-CVE-2026-45409", "record": "BREW-VIRT-MANAGER-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:47:30.404Z", "date_only": false, "value": "2026-08-13T17:47:30.404000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.36.release_date", "linked_record": true}, {"timestamp": "2026-08-13T17:48:55Z", "date_only": false, "value": "2026-08-13T17:48:55Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-VS-PREVIEW-CVE-2026-45409", "record": "BREW-VS-PREVIEW-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:48:57Z", "date_only": false, "value": "2026-08-13T17:48:57Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-VUNNEL-CVE-2026-45409", "record": "BREW-VUNNEL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:49:05Z", "date_only": false, "value": "2026-08-13T17:49:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WATSON-CVE-2026-45409", "record": "BREW-WATSON-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:49:05Z", "date_only": false, "value": "2026-08-13T17:49:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WAYBACKPY-CVE-2026-45409", "record": "BREW-WAYBACKPY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:49:06Z", "date_only": false, "value": "2026-08-13T17:49:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WEAVIATE-CLI-CVE-2026-45409", "record": "BREW-WEAVIATE-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:52:09Z", "date_only": false, "value": "2026-08-13T17:52:09Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WIK-CVE-2026-45409", "record": "BREW-WIK-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:54:06Z", "date_only": false, "value": "2026-08-13T17:54:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WOOB-CVE-2026-45409", "record": "BREW-WOOB-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:54:06Z", "date_only": false, "value": "2026-08-13T17:54:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-WTFIS-CVE-2026-45409", "record": "BREW-WTFIS-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:54:12Z", "date_only": false, "value": "2026-08-13T17:54:12Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-XML2RFC-CVE-2026-45409", "record": "BREW-XML2RFC-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:55:05Z", "date_only": false, "value": "2026-08-13T17:55:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-YEWTUBE-CVE-2026-45409", "record": "BREW-YEWTUBE-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:55:05Z", "date_only": false, "value": "2026-08-13T17:55:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-YLE-DL-CVE-2026-45409", "record": "BREW-YLE-DL-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:55:05Z", "date_only": false, "value": "2026-08-13T17:55:05Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-YT-DLP-CVE-2026-45409", "record": "BREW-YT-DLP-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T17:55:06Z", "date_only": false, "value": "2026-08-13T17:55:06Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-ZABBIX-CLI-CVE-2026-45409", "record": "BREW-ZABBIX-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-13T18:11:25.926Z", "date_only": false, "value": "2026-08-13T18:11:25.926202+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.36.discovery_date", "linked_record": true}, {"timestamp": "2026-08-14T00:00:00Z", "date_only": false, "value": "2026-08-14T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-08-14T00:00:00Z", "date_only": false, "value": "2026-08-14T00:00:00", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-14T00:00:00Z", "date_only": false, "value": "2026-08-14T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1032", "record": "CERTFR-2026-AVI-1032", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-08-14T12:25:42Z", "date_only": false, "value": "2026-08-14T12:25:42Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-FP94901", "record": "CLEANSTART-2026-FP94901", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-17T17:16:48.973Z", "date_only": false, "value": "2026-08-17T17:16:48.973000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.35.release_date", "linked_record": true}, {"timestamp": "2026-08-17T17:31:07.770Z", "date_only": false, "value": "2026-08-17T17:31:07.770327+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.35.discovery_date", "linked_record": true}, {"timestamp": "2026-08-17T17:41:36.621Z", "date_only": false, "value": "2026-08-17T17:41:36.621000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.31.release_date", "linked_record": true}, {"timestamp": "2026-08-17T17:43:48.243Z", "date_only": false, "value": "2026-08-17T17:43:48.243000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.19.release_date", "linked_record": true}, {"timestamp": "2026-08-17T17:51:31.430Z", "date_only": false, "value": "2026-08-17T17:51:31.430209+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.31.discovery_date", "linked_record": true}, {"timestamp": "2026-08-17T18:02:33.732Z", "date_only": false, "value": "2026-08-17T18:02:33.732676+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.19.discovery_date", "linked_record": true}, {"timestamp": "2026-08-18T18:22:46Z", "date_only": false, "value": "2026-08-18T18:22:46+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-18T18:22:46Z", "date_only": false, "value": "2026-08-18T18:22:46+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-18T18:22:46Z", "date_only": false, "value": "2026-08-18T18:22:46+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "vulnerabilities.36.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-08-19T00:00:00Z", "date_only": true, "value": "2026-08-19", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1056", "record": "CERTFR-2026-AVI-1056", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-08-19T22:00:00Z", "date_only": false, "value": "2026-08-19T22:00:00.000+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-19T22:00:00Z", "date_only": false, "value": "2026-08-19T22:00:00.000+00:00", "kind": "milestone", "label": "Published", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-19T22:00:00Z", "date_only": false, "value": "2026-08-19T22:00:00.000+00:00", "kind": "other", "label": "Release date", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "vulnerabilities.77.release_date", "linked_record": true, "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-08-20T00:00:00Z", "date_only": false, "value": "2026-08-20T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1056", "record": "CERTFR-2026-AVI-1056", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-08-20T00:00:00Z", "date_only": false, "value": "2026-08-20T00:00:00", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1056", "record": "CERTFR-2026-AVI-1056", "field": "initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-20T00:00:00Z", "date_only": false, "value": "2026-08-20T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1056", "record": "CERTFR-2026-AVI-1056", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-08-24T09:30:04.212Z", "date_only": false, "value": "2026-08-24T09:30:04.212000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.38.release_date", "linked_record": true}, {"timestamp": "2026-08-24T09:40:19.801Z", "date_only": false, "value": "2026-08-24T09:40:19.801000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.37.release_date", "linked_record": true}, {"timestamp": "2026-08-24T09:51:02.191Z", "date_only": false, "value": "2026-08-24T09:51:02.191062+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.38.discovery_date", "linked_record": true}, {"timestamp": "2026-08-24T09:51:05.559Z", "date_only": false, "value": "2026-08-24T09:51:05.559475+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.37.discovery_date", "linked_record": true}, {"timestamp": "2026-08-24T09:58:07.698Z", "date_only": false, "value": "2026-08-24T09:58:07.698000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.39.release_date", "linked_record": true}, {"timestamp": "2026-08-24T10:07:56.440Z", "date_only": false, "value": "2026-08-24T10:07:56.440000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.40.release_date", "linked_record": true}, {"timestamp": "2026-08-24T10:11:05.356Z", "date_only": false, "value": "2026-08-24T10:11:05.356309+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.39.discovery_date", "linked_record": true}, {"timestamp": "2026-08-24T10:31:12.887Z", "date_only": false, "value": "2026-08-24T10:31:12.887477+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.40.discovery_date", "linked_record": true}, {"timestamp": "2026-08-24T11:15:22Z", "date_only": false, "value": "2026-08-24T11:15:22+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-24T11:15:22Z", "date_only": false, "value": "2026-08-24T11:15:22+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-24T11:15:22Z", "date_only": false, "value": "2026-08-24T11:15:22+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "vulnerabilities.89.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-08-24T11:15:41Z", "date_only": false, "value": "2026-08-24T11:15:41+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-08-24T13:12:01.148Z", "date_only": false, "value": "2026-08-24T13:12:01.148000+00:00", "kind": "other", "label": "Release date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.41.release_date", "linked_record": true}, {"timestamp": "2026-08-24T13:23:01.901Z", "date_only": false, "value": "2026-08-24T13:23:01.901282+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.41.discovery_date", "linked_record": true}, {"timestamp": "2026-08-27T06:11:27.633Z", "date_only": false, "value": "2026-08-27T06:11:27.633842Z", "kind": "other", "label": "Updated", "source": "osv_rocky \u00b7 RLSA-2026:54290", "record": "RLSA-2026:54290", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-27T12:13:22.194Z", "date_only": false, "value": "2026-08-27T12:13:22.194087Z", "kind": "other", "label": "Updated", "source": "osv_rocky \u00b7 RLSA-2026:54484", "record": "RLSA-2026:54484", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-27T12:13:26.152Z", "date_only": false, "value": "2026-08-27T12:13:26.152432Z", "kind": "other", "label": "Updated", "source": "osv_rocky \u00b7 RLSA-2026:54481", "record": "RLSA-2026:54481", "field": "modified", "linked_record": true}, {"timestamp": "2026-08-27T12:45:57Z", "date_only": false, "value": "2026-08-27T12:45:57Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-OCI-CLI-CVE-2026-45409", "record": "BREW-OCI-CLI-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-31T21:39:55Z", "date_only": false, "value": "2026-08-31T21:39:55+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-08-31T21:39:55Z", "date_only": false, "value": "2026-08-31T21:39:55+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-08-31T21:39:55Z", "date_only": false, "value": "2026-08-31T21:39:55+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "vulnerabilities.17.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-08-31T21:40:20Z", "date_only": false, "value": "2026-08-31T21:40:20+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-04T00:36:24Z", "date_only": false, "value": "2026-09-04T00:36:24+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-04T00:36:24Z", "date_only": false, "value": "2026-09-04T00:36:24+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-04T00:36:24Z", "date_only": false, "value": "2026-09-04T00:36:24+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-AN24336", "record": "CLEANSTART-2026-AN24336", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-EM82280", "record": "CLEANSTART-2026-EM82280", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-FG72002", "record": "CLEANSTART-2026-FG72002", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-FU68971", "record": "CLEANSTART-2026-FU68971", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-IR98353", "record": "CLEANSTART-2026-IR98353", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-KE11953", "record": "CLEANSTART-2026-KE11953", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-LJ72726", "record": "CLEANSTART-2026-LJ72726", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-NM83456", "record": "CLEANSTART-2026-NM83456", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-OE12787", "record": "CLEANSTART-2026-OE12787", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-RF67070", "record": "CLEANSTART-2026-RF67070", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-SO50412", "record": "CLEANSTART-2026-SO50412", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-UO85049", "record": "CLEANSTART-2026-UO85049", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-WQ85001", "record": "CLEANSTART-2026-WQ85001", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-AN24336", "record": "CLEANSTART-2026-AN24336", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-EM82280", "record": "CLEANSTART-2026-EM82280", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-FG72002", "record": "CLEANSTART-2026-FG72002", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-FU68971", "record": "CLEANSTART-2026-FU68971", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-IR98353", "record": "CLEANSTART-2026-IR98353", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-KE11953", "record": "CLEANSTART-2026-KE11953", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-LJ72726", "record": "CLEANSTART-2026-LJ72726", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-NM83456", "record": "CLEANSTART-2026-NM83456", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-OE12787", "record": "CLEANSTART-2026-OE12787", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-RF67070", "record": "CLEANSTART-2026-RF67070", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-SO50412", "record": "CLEANSTART-2026-SO50412", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-UO85049", "record": "CLEANSTART-2026-UO85049", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T10:55:12Z", "date_only": false, "value": "2026-09-09T10:55:12Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-WQ85001", "record": "CLEANSTART-2026-WQ85001", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-09T14:32:19Z", "date_only": false, "value": "2026-09-09T14:32:19+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-09-09T14:32:19Z", "date_only": false, "value": "2026-09-09T14:32:19+00:00", "kind": "milestone", "label": "Published", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-09T14:32:19Z", "date_only": false, "value": "2026-09-09T14:32:19+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "vulnerabilities.16.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, {"timestamp": "2026-09-09T14:32:34Z", "date_only": false, "value": "2026-09-09T14:32:34+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-09T23:40:55Z", "date_only": false, "value": "2026-09-09T23:40:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ADVAI-CLI-CVE-2026-45409", "record": "BREW-ADVAI-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T23:43:33Z", "date_only": false, "value": "2026-09-09T23:43:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BEETS-CVE-2026-45409", "record": "BREW-BEETS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-09T23:55:04Z", "date_only": false, "value": "2026-09-09T23:55:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FANFICFARE-CVE-2026-45409", "record": "BREW-FANFICFARE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T00:09:59Z", "date_only": false, "value": "2026-09-10T00:09:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HUMANBOUND-CVE-2026-45409", "record": "BREW-HUMANBOUND-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T00:14:14Z", "date_only": false, "value": "2026-09-10T00:14:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-JOHNNYDEP-CVE-2026-45409", "record": "BREW-JOHNNYDEP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T00:28:56Z", "date_only": false, "value": "2026-09-10T00:28:56Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MAPPROXY-CVE-2026-45409", "record": "BREW-MAPPROXY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T00:32:14Z", "date_only": false, "value": "2026-09-10T00:32:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MODAL-CVE-2026-45409", "record": "BREW-MODAL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T00:39:08Z", "date_only": false, "value": "2026-09-10T00:39:08Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OCI-CLI-CVE-2026-45409", "record": "BREW-OCI-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T01:28:11Z", "date_only": false, "value": "2026-09-10T01:28:11Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TELEGRAM-SEND-CVE-2026-45409", "record": "BREW-TELEGRAM-SEND-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T01:31:23Z", "date_only": false, "value": "2026-09-10T01:31:23Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TUBEUP-CVE-2026-45409", "record": "BREW-TUBEUP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T02:02:40.178Z", "date_only": false, "value": "2026-09-10T02:02:40.178361Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-IL11339", "record": "CLEANSTART-2026-IL11339", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-10T02:15:42.123Z", "date_only": false, "value": "2026-09-10T02:15:42.123416Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-MQ51708", "record": "CLEANSTART-2026-MQ51708", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-10T18:51:29Z", "date_only": false, "value": "2026-09-10T18:51:29Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@13-CVE-2026-45409", "record": "BREW-ANSIBLE@13-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T18:52:52Z", "date_only": false, "value": "2026-09-10T18:52:52Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-APM-CVE-2026-45409", "record": "BREW-APM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T19:04:07Z", "date_only": false, "value": "2026-09-10T19:04:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CVE-BIN-TOOL-CVE-2026-45409", "record": "BREW-CVE-BIN-TOOL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T19:29:23Z", "date_only": false, "value": "2026-09-10T19:29:23Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HTTPX2-CVE-2026-45409", "record": "BREW-HTTPX2-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T19:32:54Z", "date_only": false, "value": "2026-09-10T19:32:54Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ISPONSORBLOCKTV-CVE-2026-45409", "record": "BREW-ISPONSORBLOCKTV-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T20:37:33Z", "date_only": false, "value": "2026-09-10T20:37:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RAPID-MLX-CVE-2026-45409", "record": "BREW-RAPID-MLX-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-10T22:00:00Z", "date_only": false, "value": "2026-09-10T22:00:00.000+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-10T22:00:00Z", "date_only": false, "value": "2026-09-10T22:00:00.000+00:00", "kind": "other", "label": "Updated", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-11T09:12:37.245Z", "date_only": false, "value": "2026-09-11T09:12:37.245+00:00", "kind": "other", "label": "Document generated", "source": "csaf_certbund \u00b7 WID-SEC-W-2026-2929", "record": "WID-SEC-W-2026-2929", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-09-15T01:21:13.491Z", "date_only": false, "value": "2026-09-15T01:21:13.491530Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-EC11110", "record": "CLEANSTART-2026-EC11110", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-16T19:02:58Z", "date_only": false, "value": "2026-09-16T19:02:58Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T19:03:48Z", "date_only": false, "value": "2026-09-16T19:03:48Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T19:09:33Z", "date_only": false, "value": "2026-09-16T19:09:33Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T19:10:43Z", "date_only": false, "value": "2026-09-16T19:10:43Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T19:39:47Z", "date_only": false, "value": "2026-09-16T19:39:47Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T19:52:24Z", "date_only": false, "value": "2026-09-16T19:52:24Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T19:52:24Z", "date_only": false, "value": "2026-09-16T19:52:24Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:21873-1", "record": "SUSE-SU-2026:21873-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-16T19:53:11Z", "date_only": false, "value": "2026-09-16T19:53:11Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T19:58:51Z", "date_only": false, "value": "2026-09-16T19:58:51Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T20:00:02Z", "date_only": false, "value": "2026-09-16T20:00:02Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T20:00:02Z", "date_only": false, "value": "2026-09-16T20:00:02Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:22356-1", "record": "SUSE-SU-2026:22356-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-16T20:11:28Z", "date_only": false, "value": "2026-09-16T20:11:28Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T20:38:27Z", "date_only": false, "value": "2026-09-16T20:38:27Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-09-16T20:43:02Z", "date_only": false, "value": "2026-09-16T20:43:02Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T21:12:14Z", "date_only": false, "value": "2026-09-16T21:12:14Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-16T21:40:53Z", "date_only": false, "value": "2026-09-16T21:40:53Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-09-17T15:50:36Z", "date_only": false, "value": "2026-09-17T15:50:36Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-09-17T15:56:42Z", "date_only": false, "value": "2026-09-17T15:56:42Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-09-17T16:32:57Z", "date_only": false, "value": "2026-09-17T16:32:57Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-09-17T16:32:57Z", "date_only": false, "value": "2026-09-17T16:32:57Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:3101-1", "record": "SUSE-SU-2026:3101-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-17T17:06:00Z", "date_only": false, "value": "2026-09-17T17:06:00Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-09-17T17:06:00Z", "date_only": false, "value": "2026-09-17T17:06:00Z", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:10829-1", "record": "OPENSUSE-SU-2026:10829-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-17T17:33:48Z", "date_only": false, "value": "2026-09-17T17:33:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BTCLI-CVE-2026-45409", "record": "BREW-BTCLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-17T17:35:46Z", "date_only": false, "value": "2026-09-17T17:35:46Z", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-09-17T17:35:46Z", "date_only": false, "value": "2026-09-17T17:35:46Z", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 OPENSUSE-SU-2026:21048-1", "record": "OPENSUSE-SU-2026:21048-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-17T19:14:51Z", "date_only": false, "value": "2026-09-17T19:14:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MISTRAL-VIBE-CVE-2026-45409", "record": "BREW-MISTRAL-VIBE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-17T20:03:39Z", "date_only": false, "value": "2026-09-17T20:03:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AZURE-CLI-CVE-2026-45409", "record": "BREW-AZURE-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T10:09:12.863Z", "date_only": false, "value": "2026-09-18T10:09:12.863663Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-WY69230", "record": "CLEANSTART-2026-WY69230", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-AZ09261", "record": "CLEANSTART-2026-AZ09261", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-BC05591", "record": "CLEANSTART-2026-BC05591", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-BY15343", "record": "CLEANSTART-2026-BY15343", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-CL32060", "record": "CLEANSTART-2026-CL32060", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-CQ05396", "record": "CLEANSTART-2026-CQ05396", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-CW50457", "record": "CLEANSTART-2026-CW50457", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-EC11110", "record": "CLEANSTART-2026-EC11110", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-EN66750", "record": "CLEANSTART-2026-EN66750", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-FT24360", "record": "CLEANSTART-2026-FT24360", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-FU07345", "record": "CLEANSTART-2026-FU07345", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-GG76429", "record": "CLEANSTART-2026-GG76429", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-HP19968", "record": "CLEANSTART-2026-HP19968", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-IL11339", "record": "CLEANSTART-2026-IL11339", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-JU43269", "record": "CLEANSTART-2026-JU43269", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-JW02028", "record": "CLEANSTART-2026-JW02028", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-KS40314", "record": "CLEANSTART-2026-KS40314", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-KY55512", "record": "CLEANSTART-2026-KY55512", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-MI51590", "record": "CLEANSTART-2026-MI51590", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-MQ51708", "record": "CLEANSTART-2026-MQ51708", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-NN42198", "record": "CLEANSTART-2026-NN42198", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-NR60332", "record": "CLEANSTART-2026-NR60332", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-OA40644", "record": "CLEANSTART-2026-OA40644", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-QE89118", "record": "CLEANSTART-2026-QE89118", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-RQ52450", "record": "CLEANSTART-2026-RQ52450", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-SA70432", "record": "CLEANSTART-2026-SA70432", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-SC87032", "record": "CLEANSTART-2026-SC87032", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-SZ12594", "record": "CLEANSTART-2026-SZ12594", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-UC45646", "record": "CLEANSTART-2026-UC45646", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-YP48558", "record": "CLEANSTART-2026-YP48558", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-AZ09261", "record": "CLEANSTART-2026-AZ09261", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-BC05591", "record": "CLEANSTART-2026-BC05591", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-BY15343", "record": "CLEANSTART-2026-BY15343", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-CL32060", "record": "CLEANSTART-2026-CL32060", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-CQ05396", "record": "CLEANSTART-2026-CQ05396", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-CW50457", "record": "CLEANSTART-2026-CW50457", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-EC11110", "record": "CLEANSTART-2026-EC11110", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-EN66750", "record": "CLEANSTART-2026-EN66750", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-FT24360", "record": "CLEANSTART-2026-FT24360", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-FU07345", "record": "CLEANSTART-2026-FU07345", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-GG76429", "record": "CLEANSTART-2026-GG76429", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-HP19968", "record": "CLEANSTART-2026-HP19968", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-IL11339", "record": "CLEANSTART-2026-IL11339", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-JU43269", "record": "CLEANSTART-2026-JU43269", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-JW02028", "record": "CLEANSTART-2026-JW02028", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-KS40314", "record": "CLEANSTART-2026-KS40314", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-KY55512", "record": "CLEANSTART-2026-KY55512", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-MI51590", "record": "CLEANSTART-2026-MI51590", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-MQ51708", "record": "CLEANSTART-2026-MQ51708", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-NN42198", "record": "CLEANSTART-2026-NN42198", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-NR60332", "record": "CLEANSTART-2026-NR60332", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-OA40644", "record": "CLEANSTART-2026-OA40644", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-QE89118", "record": "CLEANSTART-2026-QE89118", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-RQ52450", "record": "CLEANSTART-2026-RQ52450", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-SA70432", "record": "CLEANSTART-2026-SA70432", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-SC87032", "record": "CLEANSTART-2026-SC87032", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-SZ12594", "record": "CLEANSTART-2026-SZ12594", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-UC45646", "record": "CLEANSTART-2026-UC45646", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-18T11:59:01.768Z", "date_only": false, "value": "2026-09-18T11:59:01.768079Z", "kind": "other", "label": "Withdrawn", "source": "cleanstart \u00b7 CLEANSTART-2026-YP48558", "record": "CLEANSTART-2026-YP48558", "field": "withdrawn", "linked_record": true}, {"timestamp": "2026-09-19T09:26:39Z", "date_only": false, "value": "2026-09-19T09:26:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FASTMCP-CVE-2026-45409", "record": "BREW-FASTMCP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-19T10:19:39Z", "date_only": false, "value": "2026-09-19T10:19:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LOCUST-CVE-2026-45409", "record": "BREW-LOCUST-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-19T15:40:37Z", "date_only": false, "value": "2026-09-19T15:40:37Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.4.date", "linked_record": true}, {"timestamp": "2026-09-20T10:46:40Z", "date_only": false, "value": "2026-09-20T10:46:40Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHECKDMARC-CVE-2026-45409", "record": "BREW-CHECKDMARC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T10:49:33Z", "date_only": false, "value": "2026-09-20T10:49:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GITINGEST-CVE-2026-45409", "record": "BREW-GITINGEST-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T10:50:43Z", "date_only": false, "value": "2026-09-20T10:50:43Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BORGMATIC-CVE-2026-45409", "record": "BREW-BORGMATIC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T10:52:12Z", "date_only": false, "value": "2026-09-20T10:52:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GPTME-CVE-2026-45409", "record": "BREW-GPTME-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T10:53:54Z", "date_only": false, "value": "2026-09-20T10:53:54Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LANGGRAPH-CLI-CVE-2026-45409", "record": "BREW-LANGGRAPH-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T10:59:59Z", "date_only": false, "value": "2026-09-20T10:59:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PIECES-CLI-CVE-2026-45409", "record": "BREW-PIECES-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T11:01:55Z", "date_only": false, "value": "2026-09-20T11:01:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-POSTING-CVE-2026-45409", "record": "BREW-POSTING-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T11:39:05Z", "date_only": false, "value": "2026-09-20T11:39:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PELICAN-CVE-2026-45409", "record": "BREW-PELICAN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T11:53:18Z", "date_only": false, "value": "2026-09-20T11:53:18Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MAIGRET-CVE-2026-45409", "record": "BREW-MAIGRET-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T12:00:59Z", "date_only": false, "value": "2026-09-20T12:00:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SCHEMATHESIS-CVE-2026-45409", "record": "BREW-SCHEMATHESIS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T12:13:33Z", "date_only": false, "value": "2026-09-20T12:13:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LINODE-CLI-CVE-2026-45409", "record": "BREW-LINODE-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T12:14:16Z", "date_only": false, "value": "2026-09-20T12:14:16Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MCPM-CVE-2026-45409", "record": "BREW-MCPM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-20T18:38:50Z", "date_only": false, "value": "2026-09-20T18:38:50Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.revision_history.5.date", "linked_record": true}, {"timestamp": "2026-09-20T18:38:50Z", "date_only": false, "value": "2026-09-20T18:38:50Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:21914-1", "record": "SUSE-SU-2026:21914-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-09-21T08:59:49Z", "date_only": false, "value": "2026-09-21T08:59:49Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-POETRY-CVE-2026-45409", "record": "BREW-POETRY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-21T20:40:04Z", "date_only": false, "value": "2026-09-21T20:40:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-KHAOS-CVE-2026-45409", "record": "BREW-KHAOS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-23T09:40:51Z", "date_only": false, "value": "2026-09-23T09:40:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SNYK-AGENT-SCAN-CVE-2026-45409", "record": "BREW-SNYK-AGENT-SCAN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-23T09:56:55Z", "date_only": false, "value": "2026-09-23T09:56:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-JIRATUI-CVE-2026-45409", "record": "BREW-JIRATUI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-23T10:03:06Z", "date_only": false, "value": "2026-09-23T10:03:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PROWLER-CVE-2026-45409", "record": "BREW-PROWLER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-23T10:29:51Z", "date_only": false, "value": "2026-09-23T10:29:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-KASKADE-CVE-2026-45409", "record": "BREW-KASKADE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-23T10:37:38Z", "date_only": false, "value": "2026-09-23T10:37:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FLEXGET-CVE-2026-45409", "record": "BREW-FLEXGET-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-24T08:52:35Z", "date_only": false, "value": "2026-09-24T08:52:35Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LLM-CVE-2026-45409", "record": "BREW-LLM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-24T09:20:57Z", "date_only": false, "value": "2026-09-24T09:20:57Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MAGIC-WORMHOLE-CVE-2026-45409", "record": "BREW-MAGIC-WORMHOLE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-24T09:37:53Z", "date_only": false, "value": "2026-09-24T09:37:53Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CYCODE-CVE-2026-45409", "record": "BREW-CYCODE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T08:51:14Z", "date_only": false, "value": "2026-09-25T08:51:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GAMDL-CVE-2026-45409", "record": "BREW-GAMDL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T08:58:33Z", "date_only": false, "value": "2026-09-25T08:58:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-POCKET-TTS-CVE-2026-45409", "record": "BREW-POCKET-TTS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T09:29:26Z", "date_only": false, "value": "2026-09-25T09:29:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OTTERDOG-CVE-2026-45409", "record": "BREW-OTTERDOG-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T09:32:57Z", "date_only": false, "value": "2026-09-25T09:32:57Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-VUNNEL-CVE-2026-45409", "record": "BREW-VUNNEL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T09:54:51Z", "date_only": false, "value": "2026-09-25T09:54:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HERMES-AGENT-CVE-2026-45409", "record": "BREW-HERMES-AGENT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-25T10:01:12Z", "date_only": false, "value": "2026-09-25T10:01:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DATALAD-CVE-2026-45409", "record": "BREW-DATALAD-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T17:27:37Z", "date_only": false, "value": "2026-09-28T17:27:37Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OTERM-CVE-2026-45409", "record": "BREW-OTERM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T17:29:48Z", "date_only": false, "value": "2026-09-28T17:29:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TMT-CVE-2026-45409", "record": "BREW-TMT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T17:46:24Z", "date_only": false, "value": "2026-09-28T17:46:24Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SNOWFLAKE-CLI-CVE-2026-45409", "record": "BREW-SNOWFLAKE-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T17:51:02Z", "date_only": false, "value": "2026-09-28T17:51:02Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HF-CVE-2026-45409", "record": "BREW-HF-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T18:38:24Z", "date_only": false, "value": "2026-09-28T18:38:24Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PARSEDMARC-CVE-2026-45409", "record": "BREW-PARSEDMARC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T18:38:44Z", "date_only": false, "value": "2026-09-28T18:38:44Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHECKOV-CVE-2026-45409", "record": "BREW-CHECKOV-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T18:42:47Z", "date_only": false, "value": "2026-09-28T18:42:47Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GGSHIELD-CVE-2026-45409", "record": "BREW-GGSHIELD-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-28T19:07:32Z", "date_only": false, "value": "2026-09-28T19:07:32Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-UVICORN-CVE-2026-45409", "record": "BREW-UVICORN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T08:56:41Z", "date_only": false, "value": "2026-09-30T08:56:41Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CLOUDFORMATION-CLI-CVE-2026-45409", "record": "BREW-CLOUDFORMATION-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T18:43:18Z", "date_only": false, "value": "2026-09-30T18:43:18Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FORBIDDEN-CVE-2026-45409", "record": "BREW-FORBIDDEN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T18:49:26Z", "date_only": false, "value": "2026-09-30T18:49:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-EVERNOTE-BACKUP-CVE-2026-45409", "record": "BREW-EVERNOTE-BACKUP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T18:52:07Z", "date_only": false, "value": "2026-09-30T18:52:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MCP-GOOGLE-SHEETS-CVE-2026-45409", "record": "BREW-MCP-GOOGLE-SHEETS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T18:56:30Z", "date_only": false, "value": "2026-09-30T18:56:30Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ROCKCRAFT-CVE-2026-45409", "record": "BREW-ROCKCRAFT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T19:04:26Z", "date_only": false, "value": "2026-09-30T19:04:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GDOWN-CVE-2026-45409", "record": "BREW-GDOWN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T19:10:33Z", "date_only": false, "value": "2026-09-30T19:10:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DSTACK-CVE-2026-45409", "record": "BREW-DSTACK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T19:29:03Z", "date_only": false, "value": "2026-09-30T19:29:03Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SICKCHILL-CVE-2026-45409", "record": "BREW-SICKCHILL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T19:46:07Z", "date_only": false, "value": "2026-09-30T19:46:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SIGSTORE-CVE-2026-45409", "record": "BREW-SIGSTORE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T19:49:59Z", "date_only": false, "value": "2026-09-30T19:49:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-STRANDS-AGENTS-SOPS-CVE-2026-45409", "record": "BREW-STRANDS-AGENTS-SOPS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:00:38Z", "date_only": false, "value": "2026-09-30T20:00:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BBOT-CVE-2026-45409", "record": "BREW-BBOT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:03:26Z", "date_only": false, "value": "2026-09-30T20:03:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MCP-ATLASSIAN-CVE-2026-45409", "record": "BREW-MCP-ATLASSIAN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:05:34Z", "date_only": false, "value": "2026-09-30T20:05:34Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GCALCLI-CVE-2026-45409", "record": "BREW-GCALCLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:12:52Z", "date_only": false, "value": "2026-09-30T20:12:52Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MCP-PROXY-CVE-2026-45409", "record": "BREW-MCP-PROXY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:23:30Z", "date_only": false, "value": "2026-09-30T20:23:30Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SYSAIDMIN-CVE-2026-45409", "record": "BREW-SYSAIDMIN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:42:56Z", "date_only": false, "value": "2026-09-30T20:42:56Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SCOUTSUITE-CVE-2026-45409", "record": "BREW-SCOUTSUITE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-09-30T20:47:23Z", "date_only": false, "value": "2026-09-30T20:47:23Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHARMCRAFT-CVE-2026-45409", "record": "BREW-CHARMCRAFT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-01T09:10:29Z", "date_only": false, "value": "2026-10-01T09:10:29Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CYCLONEDX-PYTHON-CVE-2026-45409", "record": "BREW-CYCLONEDX-PYTHON-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-01T10:23:41Z", "date_only": false, "value": "2026-10-01T10:23:41Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FASTAPI-CVE-2026-45409", "record": "BREW-FASTAPI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:49:18Z", "date_only": false, "value": "2026-10-02T08:49:18Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-B4-CVE-2026-45409", "record": "BREW-B4-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:49:20Z", "date_only": false, "value": "2026-10-02T08:49:20Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BACKGROUNDREMOVER-CVE-2026-45409", "record": "BREW-BACKGROUNDREMOVER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:49:24Z", "date_only": false, "value": "2026-10-02T08:49:24Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CENSYS-CVE-2026-45409", "record": "BREW-CENSYS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:49:43Z", "date_only": false, "value": "2026-10-02T08:49:43Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ARCHGW-CVE-2026-45409", "record": "BREW-ARCHGW-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:50:07Z", "date_only": false, "value": "2026-10-02T08:50:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CLOUDFLARE-CLI4-CVE-2026-45409", "record": "BREW-CLOUDFLARE-CLI4-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:50:38Z", "date_only": false, "value": "2026-10-02T08:50:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BAGELS-CVE-2026-45409", "record": "BREW-BAGELS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:50:44Z", "date_only": false, "value": "2026-10-02T08:50:44Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DNSGEN-CVE-2026-45409", "record": "BREW-DNSGEN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:50:48Z", "date_only": false, "value": "2026-10-02T08:50:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DOTDROP-CVE-2026-45409", "record": "BREW-DOTDROP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T08:50:59Z", "date_only": false, "value": "2026-10-02T08:50:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CRYTIC-COMPILE-CVE-2026-45409", "record": "BREW-CRYTIC-COMPILE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:06:51Z", "date_only": false, "value": "2026-10-02T09:06:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BPYTHON-CVE-2026-45409", "record": "BREW-BPYTHON-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:08:46Z", "date_only": false, "value": "2026-10-02T09:08:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CODECOV-CLI-CVE-2026-45409", "record": "BREW-CODECOV-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:09:45Z", "date_only": false, "value": "2026-10-02T09:09:45Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CF2TF-CVE-2026-45409", "record": "BREW-CF2TF-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:12:33Z", "date_only": false, "value": "2026-10-02T09:12:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CODELIMIT-CVE-2026-45409", "record": "BREW-CODELIMIT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:12:46Z", "date_only": false, "value": "2026-10-02T09:12:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CONDA-LOCK-CVE-2026-45409", "record": "BREW-CONDA-LOCK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:16:12Z", "date_only": false, "value": "2026-10-02T09:16:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CINECLI-CVE-2026-45409", "record": "BREW-CINECLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:46:05Z", "date_only": false, "value": "2026-10-02T09:46:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AWS-SSO-UTIL-CVE-2026-45409", "record": "BREW-AWS-SSO-UTIL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T09:55:38Z", "date_only": false, "value": "2026-10-02T09:55:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ECS-DEPLOY-CVE-2026-45409", "record": "BREW-ECS-DEPLOY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T10:25:51Z", "date_only": false, "value": "2026-10-02T10:25:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AWS-ELASTICBEANSTALK-CVE-2026-45409", "record": "BREW-AWS-ELASTICBEANSTALK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T10:41:22Z", "date_only": false, "value": "2026-10-02T10:41:22Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CERTSYNC-CVE-2026-45409", "record": "BREW-CERTSYNC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-02T11:08:28Z", "date_only": false, "value": "2026-10-02T11:08:28Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MLX-LM-CVE-2026-45409", "record": "BREW-MLX-LM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-03T08:55:28Z", "date_only": false, "value": "2026-10-03T08:55:28Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PODCAST-ARCHIVER-CVE-2026-45409", "record": "BREW-PODCAST-ARCHIVER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-03T09:26:33Z", "date_only": false, "value": "2026-10-03T09:26:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PDM-CVE-2026-45409", "record": "BREW-PDM-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-03T10:16:38Z", "date_only": false, "value": "2026-10-03T10:16:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PDFLY-CVE-2026-45409", "record": "BREW-PDFLY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T10:43:20Z", "date_only": false, "value": "2026-10-04T10:43:20Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MK-CVE-2026-45409", "record": "BREW-MK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T10:43:31Z", "date_only": false, "value": "2026-10-04T10:43:31Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MKDOCS-MATERIAL-CVE-2026-45409", "record": "BREW-MKDOCS-MATERIAL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T10:44:12Z", "date_only": false, "value": "2026-10-04T10:44:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OPENSTACKCLIENT-CVE-2026-45409", "record": "BREW-OPENSTACKCLIENT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T10:50:45Z", "date_only": false, "value": "2026-10-04T10:50:45Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SHERLOCK-CVE-2026-45409", "record": "BREW-SHERLOCK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:04:53Z", "date_only": false, "value": "2026-10-04T11:04:53Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GRAYSKULL-CVE-2026-45409", "record": "BREW-GRAYSKULL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:07:05Z", "date_only": false, "value": "2026-10-04T11:07:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AWSCURL-CVE-2026-45409", "record": "BREW-AWSCURL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:07:28Z", "date_only": false, "value": "2026-10-04T11:07:28Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-KEEPER-COMMANDER-CVE-2026-45409", "record": "BREW-KEEPER-COMMANDER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:13:35Z", "date_only": false, "value": "2026-10-04T11:13:35Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-POCSUITE3-CVE-2026-45409", "record": "BREW-POCSUITE3-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:26:34Z", "date_only": false, "value": "2026-10-04T11:26:34Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SEMGREP-CVE-2026-45409", "record": "BREW-SEMGREP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:38:55Z", "date_only": false, "value": "2026-10-04T11:38:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SIGMA-CLI-CVE-2026-45409", "record": "BREW-SIGMA-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:39:06Z", "date_only": false, "value": "2026-10-04T11:39:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-YLE-DL-CVE-2026-45409", "record": "BREW-YLE-DL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T11:52:40Z", "date_only": false, "value": "2026-10-04T11:52:40Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LEXICON-CVE-2026-45409", "record": "BREW-LEXICON-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:01:01Z", "date_only": false, "value": "2026-10-04T12:01:01Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PULP-CLI-CVE-2026-45409", "record": "BREW-PULP-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:04:58Z", "date_only": false, "value": "2026-10-04T12:04:58Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HATCH-CVE-2026-45409", "record": "BREW-HATCH-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:05:51Z", "date_only": false, "value": "2026-10-04T12:05:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SHODAN-CVE-2026-45409", "record": "BREW-SHODAN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:13:55Z", "date_only": false, "value": "2026-10-04T12:13:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PASS-IMPORT-CVE-2026-45409", "record": "BREW-PASS-IMPORT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:18:14Z", "date_only": false, "value": "2026-10-04T12:18:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PIP-AUDIT-CVE-2026-45409", "record": "BREW-PIP-AUDIT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:20:56Z", "date_only": false, "value": "2026-10-04T12:20:56Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MOODLE-DL-CVE-2026-45409", "record": "BREW-MOODLE-DL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:22:42Z", "date_only": false, "value": "2026-10-04T12:22:42Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OPENAI-WHISPER-CVE-2026-45409", "record": "BREW-OPENAI-WHISPER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:25:13Z", "date_only": false, "value": "2026-10-04T12:25:13Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SHUB-CVE-2026-45409", "record": "BREW-SHUB-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:26:06Z", "date_only": false, "value": "2026-10-04T12:26:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PYTR-CVE-2026-45409", "record": "BREW-PYTR-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:27:43Z", "date_only": false, "value": "2026-10-04T12:27:43Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RICH-CLI-CVE-2026-45409", "record": "BREW-RICH-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:38:49Z", "date_only": false, "value": "2026-10-04T12:38:49Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GPTLINE-CVE-2026-45409", "record": "BREW-GPTLINE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:43:38Z", "date_only": false, "value": "2026-10-04T12:43:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ONIONPROBE-CVE-2026-45409", "record": "BREW-ONIONPROBE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:45:02Z", "date_only": false, "value": "2026-10-04T12:45:02Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ONLYKEY-AGENT-CVE-2026-45409", "record": "BREW-ONLYKEY-AGENT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T12:58:18Z", "date_only": false, "value": "2026-10-04T12:58:18Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SCRAPY-CVE-2026-45409", "record": "BREW-SCRAPY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T13:06:05Z", "date_only": false, "value": "2026-10-04T13:06:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PAPIS-CVE-2026-45409", "record": "BREW-PAPIS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T20:11:26Z", "date_only": false, "value": "2026-10-04T20:11:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HTTP-PROMPT-CVE-2026-45409", "record": "BREW-HTTP-PROMPT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T20:17:05Z", "date_only": false, "value": "2026-10-04T20:17:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-STANDARDEBOOKS-CVE-2026-45409", "record": "BREW-STANDARDEBOOKS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T20:17:30Z", "date_only": false, "value": "2026-10-04T20:17:30Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-INTERNETARCHIVE-CVE-2026-45409", "record": "BREW-INTERNETARCHIVE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T20:45:51Z", "date_only": false, "value": "2026-10-04T20:45:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SOLC-SELECT-CVE-2026-45409", "record": "BREW-SOLC-SELECT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:02:59Z", "date_only": false, "value": "2026-10-04T21:02:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-STREAMRIP-CVE-2026-45409", "record": "BREW-STREAMRIP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:09:27Z", "date_only": false, "value": "2026-10-04T21:09:27Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TWINE-CVE-2026-45409", "record": "BREW-TWINE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:09:30Z", "date_only": false, "value": "2026-10-04T21:09:30Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-VIRT-MANAGER-CVE-2026-45409", "record": "BREW-VIRT-MANAGER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:23:43Z", "date_only": false, "value": "2026-10-04T21:23:43Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SPHINX-DOC-CVE-2026-45409", "record": "BREW-SPHINX-DOC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:33:26Z", "date_only": false, "value": "2026-10-04T21:33:26Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TREZOR-AGENT-CVE-2026-45409", "record": "BREW-TREZOR-AGENT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:40:51Z", "date_only": false, "value": "2026-10-04T21:40:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SLITHER-ANALYZER-CVE-2026-45409", "record": "BREW-SLITHER-ANALYZER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:43:09Z", "date_only": false, "value": "2026-10-04T21:43:09Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-YT-DLP-CVE-2026-45409", "record": "BREW-YT-DLP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T21:52:05Z", "date_only": false, "value": "2026-10-04T21:52:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WTFIS-CVE-2026-45409", "record": "BREW-WTFIS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T22:23:47Z", "date_only": false, "value": "2026-10-04T22:23:47Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-YEWTUBE-CVE-2026-45409", "record": "BREW-YEWTUBE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T22:43:57Z", "date_only": false, "value": "2026-10-04T22:43:57Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WOOB-CVE-2026-45409", "record": "BREW-WOOB-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-04T22:48:50Z", "date_only": false, "value": "2026-10-04T22:48:50Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-URLWATCH-CVE-2026-45409", "record": "BREW-URLWATCH-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-05T10:00:06Z", "date_only": false, "value": "2026-10-05T10:00:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RAWDOG-CVE-2026-45409", "record": "BREW-RAWDOG-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-05T10:14:02Z", "date_only": false, "value": "2026-10-05T10:14:02Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-XML2RFC-CVE-2026-45409", "record": "BREW-XML2RFC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-06T19:49:07Z", "date_only": false, "value": "2026-10-06T19:49:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LUE-READER-CVE-2026-45409", "record": "BREW-LUE-READER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-06T20:05:32Z", "date_only": false, "value": "2026-10-06T20:05:32Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TWTXT-CVE-2026-45409", "record": "BREW-TWTXT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-06T20:09:02Z", "date_only": false, "value": "2026-10-06T20:09:02Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PFERD-CVE-2026-45409", "record": "BREW-PFERD-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-06T20:14:38Z", "date_only": false, "value": "2026-10-06T20:14:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SACAD-CVE-2026-45409", "record": "BREW-SACAD-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T09:26:40Z", "date_only": false, "value": "2026-10-07T09:26:40Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HTTPTAP-CVE-2026-45409", "record": "BREW-HTTPTAP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:44:23Z", "date_only": false, "value": "2026-10-07T22:44:23Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DETECT-SECRETS-CVE-2026-45409", "record": "BREW-DETECT-SECRETS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:44:41Z", "date_only": false, "value": "2026-10-07T22:44:41Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DUPLICITY-CVE-2026-45409", "record": "BREW-DUPLICITY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:45:17Z", "date_only": false, "value": "2026-10-07T22:45:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-KNOT-RESOLVER-CVE-2026-45409", "record": "BREW-KNOT-RESOLVER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:45:48Z", "date_only": false, "value": "2026-10-07T22:45:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-COOKIECUTTER-CVE-2026-45409", "record": "BREW-COOKIECUTTER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:46:03Z", "date_only": false, "value": "2026-10-07T22:46:03Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-S3QL-CVE-2026-45409", "record": "BREW-S3QL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:46:05Z", "date_only": false, "value": "2026-10-07T22:46:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GROKMIRROR-CVE-2026-45409", "record": "BREW-GROKMIRROR-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:50:17Z", "date_only": false, "value": "2026-10-07T22:50:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@12-CVE-2026-45409", "record": "BREW-ANSIBLE@12-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:51:07Z", "date_only": false, "value": "2026-10-07T22:51:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHARM-TOOLS-CVE-2026-45409", "record": "BREW-CHARM-TOOLS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:51:29Z", "date_only": false, "value": "2026-10-07T22:51:29Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@9-CVE-2026-45409", "record": "BREW-ANSIBLE@9-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T22:52:17Z", "date_only": false, "value": "2026-10-07T22:52:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CONAN@1-CVE-2026-45409", "record": "BREW-CONAN@1-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:01:46Z", "date_only": false, "value": "2026-10-07T23:01:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HTTPIE-CVE-2026-45409", "record": "BREW-HTTPIE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:03:25Z", "date_only": false, "value": "2026-10-07T23:03:25Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RAVEN-CVE-2026-45409", "record": "BREW-RAVEN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:05:31Z", "date_only": false, "value": "2026-10-07T23:05:31Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TVNAMER-CVE-2026-45409", "record": "BREW-TVNAMER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:06:44Z", "date_only": false, "value": "2026-10-07T23:06:44Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-THEHARVESTER-CVE-2026-45409", "record": "BREW-THEHARVESTER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:12:12Z", "date_only": false, "value": "2026-10-07T23:12:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GORILLA-CLI-CVE-2026-45409", "record": "BREW-GORILLA-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:12:20Z", "date_only": false, "value": "2026-10-07T23:12:20Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANSIBLE-CVE-2026-45409", "record": "BREW-ANSIBLE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:13:53Z", "date_only": false, "value": "2026-10-07T23:13:53Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHATBLADE-CVE-2026-45409", "record": "BREW-CHATBLADE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:16:01Z", "date_only": false, "value": "2026-10-07T23:16:01Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GOOLABS-CVE-2026-45409", "record": "BREW-GOOLABS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:16:51Z", "date_only": false, "value": "2026-10-07T23:16:51Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HOMEASSISTANT-CLI-CVE-2026-45409", "record": "BREW-HOMEASSISTANT-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:21:29Z", "date_only": false, "value": "2026-10-07T23:21:29Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FRED-CVE-2026-45409", "record": "BREW-FRED-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:24:16Z", "date_only": false, "value": "2026-10-07T23:24:16Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SGR-CVE-2026-45409", "record": "BREW-SGR-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:28:10Z", "date_only": false, "value": "2026-10-07T23:28:10Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DNSTWIST-CVE-2026-45409", "record": "BREW-DNSTWIST-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:36:48Z", "date_only": false, "value": "2026-10-07T23:36:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANIMDL-CVE-2026-45409", "record": "BREW-ANIMDL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:40:38Z", "date_only": false, "value": "2026-10-07T23:40:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OMNARA-CVE-2026-45409", "record": "BREW-OMNARA-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-07T23:46:59Z", "date_only": false, "value": "2026-10-07T23:46:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GRIP-CVE-2026-45409", "record": "BREW-GRIP-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:04:18Z", "date_only": false, "value": "2026-10-08T00:04:18Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SVTPLAY-DL-CVE-2026-45409", "record": "BREW-SVTPLAY-DL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:10:56Z", "date_only": false, "value": "2026-10-08T00:10:56Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ANSIBLE@10-CVE-2026-45409", "record": "BREW-ANSIBLE@10-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:14:17Z", "date_only": false, "value": "2026-10-08T00:14:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FDROIDSERVER-CVE-2026-45409", "record": "BREW-FDROIDSERVER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:23:21Z", "date_only": false, "value": "2026-10-08T00:23:21Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SCEPTRE-CVE-2026-45409", "record": "BREW-SCEPTRE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:29:13Z", "date_only": false, "value": "2026-10-08T00:29:13Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AIDER-CVE-2026-45409", "record": "BREW-AIDER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:30:15Z", "date_only": false, "value": "2026-10-08T00:30:15Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ZABBIX-CLI-CVE-2026-45409", "record": "BREW-ZABBIX-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:32:34Z", "date_only": false, "value": "2026-10-08T00:32:34Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AIVEN-CLIENT-CVE-2026-45409", "record": "BREW-AIVEN-CLIENT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:35:36Z", "date_only": false, "value": "2026-10-08T00:35:36Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-IOCEXTRACT-CVE-2026-45409", "record": "BREW-IOCEXTRACT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:42:44Z", "date_only": false, "value": "2026-10-08T00:42:44Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ABI3AUDIT-CVE-2026-45409", "record": "BREW-ABI3AUDIT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:43:15Z", "date_only": false, "value": "2026-10-08T00:43:15Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BZT-CVE-2026-45409", "record": "BREW-BZT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:43:31Z", "date_only": false, "value": "2026-10-08T00:43:31Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CERTBOT-CVE-2026-45409", "record": "BREW-CERTBOT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:44:28Z", "date_only": false, "value": "2026-10-08T00:44:28Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GIT-REVIEW-CVE-2026-45409", "record": "BREW-GIT-REVIEW-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:53:08Z", "date_only": false, "value": "2026-10-08T00:53:08Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GYB-CVE-2026-45409", "record": "BREW-GYB-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T00:54:52Z", "date_only": false, "value": "2026-10-08T00:54:52Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MONGO-ORCHESTRATION-CVE-2026-45409", "record": "BREW-MONGO-ORCHESTRATION-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:01:49Z", "date_only": false, "value": "2026-10-08T01:01:49Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TERN-CVE-2026-45409", "record": "BREW-TERN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:05:17Z", "date_only": false, "value": "2026-10-08T01:05:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-JENKINS-JOB-BUILDER-CVE-2026-45409", "record": "BREW-JENKINS-JOB-BUILDER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:06:53Z", "date_only": false, "value": "2026-10-08T01:06:53Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ARJUN-CVE-2026-45409", "record": "BREW-ARJUN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:12:41Z", "date_only": false, "value": "2026-10-08T01:12:41Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-VS-PREVIEW-CVE-2026-45409", "record": "BREW-VS-PREVIEW-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:16:04Z", "date_only": false, "value": "2026-10-08T01:16:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AIRSHARE-CVE-2026-45409", "record": "BREW-AIRSHARE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:18:14Z", "date_only": false, "value": "2026-10-08T01:18:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-HOWDOI-CVE-2026-45409", "record": "BREW-HOWDOI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:18:30Z", "date_only": false, "value": "2026-10-08T01:18:30Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ICLOUDPD-CVE-2026-45409", "record": "BREW-ICLOUDPD-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:20:36Z", "date_only": false, "value": "2026-10-08T01:20:36Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MOTO-CVE-2026-45409", "record": "BREW-MOTO-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:21:19Z", "date_only": false, "value": "2026-10-08T01:21:19Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DOCKER-SQUASH-CVE-2026-45409", "record": "BREW-DOCKER-SQUASH-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:24:05Z", "date_only": false, "value": "2026-10-08T01:24:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SNAKEMAKE-CVE-2026-45409", "record": "BREW-SNAKEMAKE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:24:38Z", "date_only": false, "value": "2026-10-08T01:24:38Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WAYBACKPY-CVE-2026-45409", "record": "BREW-WAYBACKPY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T01:30:13Z", "date_only": false, "value": "2026-10-08T01:30:13Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WATSON-CVE-2026-45409", "record": "BREW-WATSON-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T08:17:24Z", "date_only": false, "value": "2026-10-08T08:17:24Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:17:24Z", "date_only": false, "value": "2026-10-08T08:17:24Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:17:24Z", "date_only": false, "value": "2026-10-08T08:17:24Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:17:24Z", "date_only": false, "value": "2026-10-08T08:17:24Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T08:18:32Z", "date_only": false, "value": "2026-10-08T08:18:32Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:18:32Z", "date_only": false, "value": "2026-10-08T08:18:32Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:18:32Z", "date_only": false, "value": "2026-10-08T08:18:32Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:18:32Z", "date_only": false, "value": "2026-10-08T08:18:32Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T08:20:35Z", "date_only": false, "value": "2026-10-08T08:20:35Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:20:35Z", "date_only": false, "value": "2026-10-08T08:20:35Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:20:35Z", "date_only": false, "value": "2026-10-08T08:20:35Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:20:35Z", "date_only": false, "value": "2026-10-08T08:20:35Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T08:21:47Z", "date_only": false, "value": "2026-10-08T08:21:47Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:21:47Z", "date_only": false, "value": "2026-10-08T08:21:47Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:21:47Z", "date_only": false, "value": "2026-10-08T08:21:47Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:21:47Z", "date_only": false, "value": "2026-10-08T08:21:47Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T08:23:05Z", "date_only": false, "value": "2026-10-08T08:23:05Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:23:05Z", "date_only": false, "value": "2026-10-08T08:23:05Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:23:05Z", "date_only": false, "value": "2026-10-08T08:23:05Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:23:05Z", "date_only": false, "value": "2026-10-08T08:23:05Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T08:24:34Z", "date_only": false, "value": "2026-10-08T08:24:34Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.revision_history.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:24:34Z", "date_only": false, "value": "2026-10-08T08:24:34Z", "kind": "other", "label": "Document generated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-08T08:24:34Z", "date_only": false, "value": "2026-10-08T08:24:34Z", "kind": "other", "label": "Impact", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "vulnerabilities.0.threats.0.date", "linked_record": true}, {"timestamp": "2026-10-08T08:24:34Z", "date_only": false, "value": "2026-10-08T08:24:34Z", "kind": "milestone", "label": "Published", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-08T09:03:55Z", "date_only": false, "value": "2026-10-08T09:03:55Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TORRRA-CVE-2026-45409", "record": "BREW-TORRRA-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-08T18:00:41Z", "date_only": false, "value": "2026-10-08T18:00:41Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-08T18:00:42Z", "date_only": false, "value": "2026-10-08T18:00:42Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-08T18:00:43Z", "date_only": false, "value": "2026-10-08T18:00:43Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-08T18:00:44Z", "date_only": false, "value": "2026-10-08T18:00:44Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-08T18:00:45Z", "date_only": false, "value": "2026-10-08T18:00:45Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-08T18:00:46Z", "date_only": false, "value": "2026-10-08T18:00:46Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.revision_history.1.date", "linked_record": true}, {"timestamp": "2026-10-09T02:52:46Z", "date_only": false, "value": "2026-10-09T02:52:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-B2-TOOLS-CVE-2026-45409", "record": "BREW-B2-TOOLS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T02:52:46Z", "date_only": false, "value": "2026-10-09T02:52:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GIMME-AWS-CREDS-CVE-2026-45409", "record": "BREW-GIMME-AWS-CREDS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T02:52:46Z", "date_only": false, "value": "2026-10-09T02:52:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-NOTIFIERS-CVE-2026-45409", "record": "BREW-NOTIFIERS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T02:52:46Z", "date_only": false, "value": "2026-10-09T02:52:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TWARC-CVE-2026-45409", "record": "BREW-TWARC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T02:52:46Z", "date_only": false, "value": "2026-10-09T02:52:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-VDIRSYNCER-CVE-2026-45409", "record": "BREW-VDIRSYNCER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T02:54:15Z", "date_only": false, "value": "2026-10-09T02:54:15Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DVC-CVE-2026-45409", "record": "BREW-DVC-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T06:40:34Z", "date_only": false, "value": "2026-10-09T06:40:34Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-WY69230", "record": "CLEANSTART-2026-WY69230", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T07:45:14Z", "date_only": false, "value": "2026-10-09T07:45:14Z", "kind": "other", "label": "Updated", "source": "cleanstart \u00b7 CLEANSTART-2026-KS12582", "record": "CLEANSTART-2026-KS12582", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-09T09:09:14Z", "date_only": false, "value": "2026-10-09T09:09:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-STREAMLINK-CVE-2026-45409", "record": "BREW-STREAMLINK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T08:56:46Z", "date_only": false, "value": "2026-10-10T08:56:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SEARCH-THAT-HASH-CVE-2026-45409", "record": "BREW-SEARCH-THAT-HASH-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T08:58:22Z", "date_only": false, "value": "2026-10-10T08:58:22Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-RECON-NG-CVE-2026-45409", "record": "BREW-RECON-NG-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T09:13:24Z", "date_only": false, "value": "2026-10-10T09:13:24Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-INSTALOOTER-CVE-2026-45409", "record": "BREW-INSTALOOTER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T09:42:57Z", "date_only": false, "value": "2026-10-10T09:42:57Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SAIL-CVE-2026-45409", "record": "BREW-SAIL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T10:23:04Z", "date_only": false, "value": "2026-10-10T10:23:04Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-SPECIFY-CVE-2026-45409", "record": "BREW-SPECIFY-CVE-2026-45409", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-10T10:23:04Z", "date_only": false, "value": "2026-10-10T10:23:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SPECIFY-CVE-2026-45409", "record": "BREW-SPECIFY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T11:00:09Z", "date_only": false, "value": "2026-10-10T11:00:09Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LOCALSTACK-CVE-2026-45409", "record": "BREW-LOCALSTACK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T11:00:23Z", "date_only": false, "value": "2026-10-10T11:00:23Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OSC-CLI-CVE-2026-45409", "record": "BREW-OSC-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-10T11:08:25Z", "date_only": false, "value": "2026-10-10T11:08:25Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-KIMI-CLI-CVE-2026-45409", "record": "BREW-KIMI-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T03:21:45Z", "date_only": false, "value": "2026-10-12T03:21:45Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DATASETTE-CVE-2026-45409", "record": "BREW-DATASETTE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T09:55:32Z", "date_only": false, "value": "2026-10-12T09:55:32Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BILIX-CVE-2026-45409", "record": "BREW-BILIX-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T11:20:07Z", "date_only": false, "value": "2026-10-12T11:20:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-COCONUT-CVE-2026-45409", "record": "BREW-COCONUT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T11:44:46Z", "date_only": false, "value": "2026-10-12T11:44:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AQTINSTALL-CVE-2026-45409", "record": "BREW-AQTINSTALL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T12:46:09Z", "date_only": false, "value": "2026-10-12T12:46:09Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BUMP-MY-VERSION-CVE-2026-45409", "record": "BREW-BUMP-MY-VERSION-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T17:18:15Z", "date_only": false, "value": "2026-10-12T17:18:15Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SAFETY-CVE-2026-45409", "record": "BREW-SAFETY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T17:26:01Z", "date_only": false, "value": "2026-10-12T17:26:01Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.4.date", "linked_record": true}, {"timestamp": "2026-10-12T17:37:24Z", "date_only": false, "value": "2026-10-12T17:37:24Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-COBO-CLI-CVE-2026-45409", "record": "BREW-COBO-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T17:50:02Z", "date_only": false, "value": "2026-10-12T17:50:02Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-LITECLI-CVE-2026-45409", "record": "BREW-LITECLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-12T18:15:03Z", "date_only": false, "value": "2026-10-12T18:15:03Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-POLICY_SENTRY-CVE-2026-45409", "record": "BREW-POLICY_SENTRY-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T08:57:29Z", "date_only": false, "value": "2026-10-13T08:57:29Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BANDCAMP-DL-CVE-2026-45409", "record": "BREW-BANDCAMP-DL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T08:59:36Z", "date_only": false, "value": "2026-10-13T08:59:36Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FLIT-CVE-2026-45409", "record": "BREW-FLIT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T09:07:59Z", "date_only": false, "value": "2026-10-13T09:07:59Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OKTA-AWSCLI-CVE-2026-45409", "record": "BREW-OKTA-AWSCLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T09:17:01Z", "date_only": false, "value": "2026-10-13T09:17:01Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-TOOT-CVE-2026-45409", "record": "BREW-TOOT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T09:20:50Z", "date_only": false, "value": "2026-10-13T09:20:50Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AWS-GOOGLE-AUTH-CVE-2026-45409", "record": "BREW-AWS-GOOGLE-AUTH-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T09:21:27Z", "date_only": false, "value": "2026-10-13T09:21:27Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CLOUDSPLAINING-CVE-2026-45409", "record": "BREW-CLOUDSPLAINING-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T10:09:32Z", "date_only": false, "value": "2026-10-13T10:09:32Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-OCTODNS-CVE-2026-45409", "record": "BREW-OCTODNS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T10:31:04Z", "date_only": false, "value": "2026-10-13T10:31:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WIK-CVE-2026-45409", "record": "BREW-WIK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:00:46Z", "date_only": false, "value": "2026-10-13T22:00:46Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CONAN-CVE-2026-45409", "record": "BREW-CONAN-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:01:37Z", "date_only": false, "value": "2026-10-13T22:01:37Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-BLACK-CVE-2026-45409", "record": "BREW-BLACK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:11:50Z", "date_only": false, "value": "2026-10-13T22:11:50Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MOLECULE-CVE-2026-45409", "record": "BREW-MOLECULE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:16:22Z", "date_only": false, "value": "2026-10-13T22:16:22Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PLATFORMIO-CVE-2026-45409", "record": "BREW-PLATFORMIO-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:19:06Z", "date_only": false, "value": "2026-10-13T22:19:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-FAVA-CVE-2026-45409", "record": "BREW-FAVA-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:20:19Z", "date_only": false, "value": "2026-10-13T22:20:19Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-APPRISE-CVE-2026-45409", "record": "BREW-APPRISE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:21:35Z", "date_only": false, "value": "2026-10-13T22:21:35Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MENTAT-CVE-2026-45409", "record": "BREW-MENTAT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:21:39Z", "date_only": false, "value": "2026-10-13T22:21:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DOLPHIE-CVE-2026-45409", "record": "BREW-DOLPHIE-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:25:07Z", "date_only": false, "value": "2026-10-13T22:25:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-MYCLI-CVE-2026-45409", "record": "BREW-MYCLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:28:48Z", "date_only": false, "value": "2026-10-13T22:28:48Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SUBLIMINAL-CVE-2026-45409", "record": "BREW-SUBLIMINAL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:34:01Z", "date_only": false, "value": "2026-10-13T22:34:01Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-INSTALOADER-CVE-2026-45409", "record": "BREW-INSTALOADER-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:37:35Z", "date_only": false, "value": "2026-10-13T22:37:35Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ESPHOME-CVE-2026-45409", "record": "BREW-ESPHOME-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:50:49Z", "date_only": false, "value": "2026-10-13T22:50:49Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-PWNTOOLS-CVE-2026-45409", "record": "BREW-PWNTOOLS-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T22:59:33Z", "date_only": false, "value": "2026-10-13T22:59:33Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-JUPYTERLAB-CVE-2026-45409", "record": "BREW-JUPYTERLAB-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T23:16:56Z", "date_only": false, "value": "2026-10-13T23:16:56Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GLANCES-CVE-2026-45409", "record": "BREW-GLANCES-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T23:30:39Z", "date_only": false, "value": "2026-10-13T23:30:39Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CRUFT-CVE-2026-45409", "record": "BREW-CRUFT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T23:31:05Z", "date_only": false, "value": "2026-10-13T23:31:05Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-AWS-SAM-CLI-CVE-2026-45409", "record": "BREW-AWS-SAM-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-13T23:33:12Z", "date_only": false, "value": "2026-10-13T23:33:12Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-SNAPCRAFT-CVE-2026-45409", "record": "BREW-SNAPCRAFT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-14T04:11:47Z", "date_only": false, "value": "2026-10-14T04:11:47Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ROBOT-FRAMEWORK-CVE-2026-45409", "record": "BREW-ROBOT-FRAMEWORK-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-14T04:21:17Z", "date_only": false, "value": "2026-10-14T04:21:17Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-DNSROBOCERT-CVE-2026-45409", "record": "BREW-DNSROBOCERT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-14T04:36:07Z", "date_only": false, "value": "2026-10-14T04:36:07Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-CHECK-JSONSCHEMA-CVE-2026-45409", "record": "BREW-CHECK-JSONSCHEMA-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-14T05:08:46Z", "date_only": false, "value": "2026-10-14T05:08:46.000000Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/4alvit/51780c643839e0155dfe3a04f4f76daa", "record": "CVE-2026-45409", "field": "creation_timestamp", "uuid": "04fe5dbb-db1b-4cfe-a822-8fd21eae9ed2", "content": "# Stable releases \u2014 complete change history\n\n43 of 43 public projects have published stable releases and verified full notes in this snapshot. The sections below use their exact published sources.\n\nEvery merged PR and commit in each release range is retained, including dependency, CI, documentation and release changes. For projects releasing their first stable version, the full reachable source history is included. Later changes on main are not included unless they are part of the published stable source.\n\n## Highlights\n\n- [open-ott-play/ottplay-foss](https://github.com/open-ott-play/ottplay-foss/releases/tag/v1.1.54): Plex file switching now exposes loading and cancellation; HLS resume retains pending seeks, and standby stops both main and picture-in-picture streams.\n- [victron-venus/inverter-desktop](https://github.com/victron-venus/inverter-desktop/releases/tag/v2.5.48): Camera previews discard stale frames, configuration restores avoid leaked subscriptions, and macOS updates can restore the previous app bundle if replacement fails.\n- [ha-homelab/ha-lg-tv-capture](https://github.com/ha-homelab/ha-lg-tv-capture/releases/tag/v0.1.0): Adds snapshot cameras for already-paired LG webOS TVs, with shared frame caching, bounded downloads and certificate pinning.\n- [ha-homelab/home-studio](https://github.com/ha-homelab/home-studio/releases/tag/v0.6.1): Adds a furniture and accessory library to the planner, expanded to 104 designs with compact geometry.\n- [victron-venus/inverter-dashboard-go](https://github.com/victron-venus/inverter-dashboard-go/releases/tag/v1.9.11): Water-system and EV readings now come directly from Cerbo MQTT services instead of Home Assistant polling.\n- [victron-venus/inverter-control](https://github.com/victron-venus/inverter-control/releases/tag/v1.23.5): Rejects malformed MQTT commands and non-finite control values before changing state, and adds read-only D-Bus diagnostic tools.\n- [open-ott-play/ottplay-control-server](https://github.com/open-ott-play/ottplay-control-server/releases/tag/v0.1.1): Adds acknowledged stop/start controls, remote favorites and whole-library Plex playback commands while retaining player authorization checks.\n- [4alvit/esphome-ble-sensor-patterns](https://github.com/4alvit/esphome-ble-sensor-patterns/releases/tag/v0.1.1): Corrects the supported Inkbird TH1/TH1 Mini frame profile and humidity scaling, while rejecting external-probe and unsupported frames.\n\n## Preparation for this release wave\n\nThese operational changes supported publication and are listed separately from the source ranges below.\n\n- Created eight missing release environments with required reviewer approval, main-only deployment and administrative bypass disabled.\n- Published and qualified fresh release candidates where the earlier RC had an outdated build-ledger reservation or the release workflows had changed, before promoting the accepted candidate to stable.\n- [DESLOC #47](https://github.com/ha-homelab/ha-desloc/pull/47) repairs the Python 3.12 transitive dependency hash lock used by the fuzz checks; the lock check runs in the existing CI suite.\n- [BLE sensor patterns #40](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/40) adds a dispatch relay to the existing release workflow, allowing the release to proceed while retaining its prohibition on self-approval.\n\n## Release index\n\n- **4alvit/amazon-echo-home-voice** \u2014 v0.3.0 \u2192 [v0.3.1](https://github.com/4alvit/amazon-echo-home-voice/releases/tag/v0.3.1); 22 merged PRs, 28 commits.\n- **4alvit/dbus-service-template** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/4alvit/dbus-service-template/releases/tag/v0.1.1); 23 merged PRs, 28 commits.\n- **4alvit/energy-data-rag-pipeline** \u2014 v0.2.11 \u2192 [v0.2.12](https://github.com/4alvit/energy-data-rag-pipeline/releases/tag/v0.2.12); 29 merged PRs, 34 commits.\n- **4alvit/esphome-ble-sensor-patterns** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/4alvit/esphome-ble-sensor-patterns/releases/tag/v0.1.1); 11 merged PRs, 13 commits.\n- **4alvit/fastapi-mqtt-gateway** \u2014 v0.1.4 \u2192 [v0.1.5](https://github.com/4alvit/fastapi-mqtt-gateway/releases/tag/v0.1.5); 26 merged PRs, 32 commits.\n- **4alvit/google-home-voice-stats** \u2014 v0.3.0 \u2192 [v0.3.1](https://github.com/4alvit/google-home-voice-stats/releases/tag/v0.3.1); 19 merged PRs, 19 commits.\n- **4alvit/iot-project-builder-profile** \u2014 v0.1.2 \u2192 [v0.1.3](https://github.com/4alvit/iot-project-builder-profile/releases/tag/v0.1.3); 25 merged PRs, 34 commits.\n- **4alvit/mcp-venus-os** \u2014 v0.2.12 \u2192 [v0.2.13](https://github.com/4alvit/mcp-venus-os/releases/tag/v0.2.13); 2 merged PRs, 2 commits.\n- **4alvit/mqtt-observability-opentelemetry** \u2014 v0.2.4 \u2192 [v0.2.5](https://github.com/4alvit/mqtt-observability-opentelemetry/releases/tag/v0.2.5); 15 merged PRs, 15 commits.\n- **4alvit/solar-forecast-langgraph** \u2014 v0.1.4 \u2192 [v0.1.5](https://github.com/4alvit/solar-forecast-langgraph/releases/tag/v0.1.5); 32 merged PRs, 37 commits.\n- **victron-venus/dbus-mqtt-battery** \u2014 v2.7.7 \u2192 [v2.7.8](https://github.com/victron-venus/dbus-mqtt-battery/releases/tag/v2.7.8); 22 merged PRs, 22 commits.\n- **victron-venus/dbus-tasmota-pv** \u2014 v3.1.0 \u2192 [v3.1.1](https://github.com/victron-venus/dbus-tasmota-pv/releases/tag/v3.1.1); 23 merged PRs, 23 commits.\n- **victron-venus/inverter-control** \u2014 v1.23.4 \u2192 [v1.23.5](https://github.com/victron-venus/inverter-control/releases/tag/v1.23.5); 31 merged PRs, 35 commits.\n- **victron-venus/inverter-dashboard** \u2014 v1.8.25 \u2192 [v1.8.27](https://github.com/victron-venus/inverter-dashboard/releases/tag/v1.8.27); 48 merged PRs, 54 commits.\n- **victron-venus/inverter-monitoring** \u2014 v1.3.5 \u2192 [v1.3.6](https://github.com/victron-venus/inverter-monitoring/releases/tag/v1.3.6); 27 merged PRs, 27 commits.\n- **victron-venus/inverter-dashboard-go** \u2014 v1.9.9 \u2192 [v1.9.11](https://github.com/victron-venus/inverter-dashboard-go/releases/tag/v1.9.11); 33 merged PRs, 37 commits.\n- **victron-venus/inverter-desktop** \u2014 v2.5.47 \u2192 [v2.5.48](https://github.com/victron-venus/inverter-desktop/releases/tag/v2.5.48); 36 merged PRs, 46 commits.\n- **victron-venus/integration-tests** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/victron-venus/integration-tests/releases/tag/v0.1.1); 167 merged PRs, 212 commits.\n- **victron-venus/inverter-dashboard-vue** \u2014 v2.2.5 \u2192 [v2.2.7](https://github.com/victron-venus/inverter-dashboard-vue/releases/tag/v2.2.7); 35 merged PRs, 40 commits.\n- **victron-venus/venus-os-observability** \u2014 v0.1.7 \u2192 [v0.1.8](https://github.com/victron-venus/venus-os-observability/releases/tag/v0.1.8); 23 merged PRs, 23 commits.\n- **victron-venus/dbus-event-log** \u2014 v0.2.1 \u2192 [v0.2.2](https://github.com/victron-venus/dbus-event-log/releases/tag/v0.2.2); 4 merged PRs, 5 commits.\n- **victron-venus/dbus-esphome-grid-sensor** \u2014 v1.0.4 \u2192 [v1.0.5](https://github.com/victron-venus/dbus-esphome-grid-sensor/releases/tag/v1.0.5); 20 merged PRs, 20 commits.\n- **victron-venus/venus-os-ci-toolkit** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/victron-venus/venus-os-ci-toolkit/releases/tag/v0.1.1); 122 merged PRs, 188 commits.\n- **victron-venus/venus-os-integration-patterns** \u2014 v0.1.1 \u2192 [v0.1.2](https://github.com/victron-venus/venus-os-integration-patterns/releases/tag/v0.1.2); 27 merged PRs, 30 commits.\n- **victron-venus/dbus-emporia-vue** \u2014 v1.0.9 \u2192 [v1.0.10](https://github.com/victron-venus/dbus-emporia-vue/releases/tag/v1.0.10); 2 merged PRs, 2 commits.\n- **victron-venus/dbus-virtual-battery** \u2014 v2.7.9 \u2192 [v2.7.10](https://github.com/victron-venus/dbus-virtual-battery/releases/tag/v2.7.10); 5 merged PRs, 5 commits.\n- **victron-venus/dbus-pump** \u2014 v0.1.6 \u2192 [v0.1.7](https://github.com/victron-venus/dbus-pump/releases/tag/v0.1.7); 3 merged PRs, 3 commits.\n- **victron-venus/dbus-ev** \u2014 v0.2.7 \u2192 [v0.2.8](https://github.com/victron-venus/dbus-ev/releases/tag/v0.2.8); 28 merged PRs, 28 commits.\n- **victron-venus/inverter-gateway** \u2014 v0.4.1 \u2192 [v0.4.2](https://github.com/victron-venus/inverter-gateway/releases/tag/v0.4.2); 20 merged PRs, 20 commits.\n- **victron-venus/inverter-climate** \u2014 v0.4.0 \u2192 [v0.4.1](https://github.com/victron-venus/inverter-climate/releases/tag/v0.4.1); 27 merged PRs, 27 commits.\n- **ha-homelab/ha-desloc** \u2014 v0.3.2 \u2192 [v0.3.3](https://github.com/ha-homelab/ha-desloc/releases/tag/v0.3.3); 23 merged PRs, 23 commits.\n- **ha-homelab/ha-desloc-card** \u2014 v0.1.2 \u2192 [v0.1.3](https://github.com/ha-homelab/ha-desloc-card/releases/tag/v0.1.3); 21 merged PRs, 21 commits.\n- **ha-homelab/ha-echo-dot** \u2014 initial stable \u2192 [v0.1.0](https://github.com/ha-homelab/ha-echo-dot/releases/tag/v0.1.0); 45 merged PRs, 46 commits.\n- **ha-homelab/ha-echo-show-5** \u2014 initial stable \u2192 [v0.1.0](https://github.com/ha-homelab/ha-echo-show-5/releases/tag/v0.1.0); 44 merged PRs, 45 commits.\n- **ha-homelab/slzb-06-recovery** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/ha-homelab/slzb-06-recovery/releases/tag/v0.1.1); 10 merged PRs, 10 commits.\n- **ha-homelab/home-studio** \u2014 v0.6.0 \u2192 [v0.6.1](https://github.com/ha-homelab/home-studio/releases/tag/v0.6.1); 17 merged PRs, 28 commits.\n- **ha-homelab/home-assistant** \u2014 initial stable \u2192 [v0.1.0](https://github.com/ha-homelab/home-assistant/releases/tag/v0.1.0); 9 merged PRs, 10 commits.\n- **ha-homelab/k3s-self-healing** \u2014 v0.1.1 \u2192 [v0.1.2](https://github.com/ha-homelab/k3s-self-healing/releases/tag/v0.1.2); 2 merged PRs, 2 commits.\n- **ha-homelab/ha-lg-tv-capture** \u2014 initial stable \u2192 [v0.1.0](https://github.com/ha-homelab/ha-lg-tv-capture/releases/tag/v0.1.0); 4 merged PRs, 5 commits.\n- **open-ott-play/ottplay-foss** \u2014 v1.1.53 \u2192 [v1.1.54](https://github.com/open-ott-play/ottplay-foss/releases/tag/v1.1.54); 20 merged PRs, 32 commits.\n- **open-ott-play/ottplay-swop** \u2014 initial stable \u2192 [v0.1.0](https://github.com/open-ott-play/ottplay-swop/releases/tag/v0.1.0); 54 merged PRs, 75 commits.\n- **open-ott-play/ottplay-control-server** \u2014 v0.1.0 \u2192 [v0.1.1](https://github.com/open-ott-play/ottplay-control-server/releases/tag/v0.1.1); 41 merged PRs, 47 commits.\n- **open-ott-play/ottplay-core** \u2014 initial stable \u2192 [v0.1.0](https://github.com/open-ott-play/ottplay-core/releases/tag/v0.1.0); 54 merged PRs, 77 commits.\n\n---\n\n## 4alvit/amazon-echo-home-voice \u2014 v0.3.1\n\n[Published stable release](https://github.com/4alvit/amazon-echo-home-voice/releases/tag/v0.3.1)\n\n## Changes in 0.3.1\n\n### Added\n\n- Installable source release archives containing the Python application, integration templates, dependency locks and operator documentation.\n- Frozen beta, nightly and RC version plans, package metadata verification and exact-asset build receipts.\n\n### Upgrade\n\nInstall the source archive in a fresh environment using the documented locked dependencies. Compare and merge configuration templates; preserve installation-specific credentials and existing service configuration outside the checkout. This release does not deploy services, create cloud resources or configure physical speakers. Keep the previously accepted package and configuration for rollback.\n\n### Security\n\nThe release process preserves the existing required validation workflows and publishes only tracked inputs. Local secrets, environment files, deployment state and generated media are excluded by the repository's existing tracking policy. Release receipts verify artifact identity; physical voice behavior and installation-specific access must still be accepted separately.\n\n## Build provenance\n\nPromoted unchanged from [v0.3.1-rc.1](https://github.com/4alvit/amazon-echo-home-voice/releases/tag/v0.3.1-rc.1).\n\nSource: `5e971f02109e8a5de5d7df29adc087c10ca8ed7f`\n\nValidation: https://github.com/4alvit/amazon-echo-home-voice/actions/runs/38487604812\n\nPromotion: https://github.com/4alvit/amazon-echo-home-voice/actions/runs/38510715098\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.3.0\n\nReleased source: [5e971f02109e](https://github.com/4alvit/amazon-echo-home-voice/commit/5e971f02109e8a5de5d7df29adc087c10ca8ed7f).\nPrevious stable source: [ef6d4fc98c92](https://github.com/4alvit/amazon-echo-home-voice/commit/ef6d4fc98c922271e118930caa59254217f88919).\n\n[Full source history](https://github.com/4alvit/amazon-echo-home-voice/compare/ef6d4fc98c922271e118930caa59254217f88919...5e971f02109e8a5de5d7df29adc087c10ca8ed7f). The list includes application, dependency, CI, documentation and release changes.\n\n\nAll 22 merged pull requests\n\n- [#20](https://github.com/4alvit/amazon-echo-home-voice/pull/20) \u2014 docs: clarify optional numeric metric validation\n- [#22](https://github.com/4alvit/amazon-echo-home-voice/pull/22) \u2014 chore(ci): enable quiet CodeRabbit reviews\n- [#21](https://github.com/4alvit/amazon-echo-home-voice/pull/21) \u2014 fix: support optional power flow reports in the CLI\n- [#23](https://github.com/4alvit/amazon-echo-home-voice/pull/23) \u2014 ci: prepare optional runner reserve without enabling it\n- [#24](https://github.com/4alvit/amazon-echo-home-voice/pull/24) \u2014 docs: connect energy reports and Echo device guides\n- [#25](https://github.com/4alvit/amazon-echo-home-voice/pull/25) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#31](https://github.com/4alvit/amazon-echo-home-voice/pull/31) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#32](https://github.com/4alvit/amazon-echo-home-voice/pull/32) \u2014 fix: harden integration proxy and add OpenSSF evidence\n- [#33](https://github.com/4alvit/amazon-echo-home-voice/pull/33) \u2014 fix: construct delimiter-free OAuth proxy response headers\n- [#27](https://github.com/4alvit/amazon-echo-home-voice/pull/27) \u2014 Group coherent GitHub Actions updates\n- [#34](https://github.com/4alvit/amazon-echo-home-voice/pull/34) \u2014 fix: handle oversized gateway timestamps safely\n- [#36](https://github.com/4alvit/amazon-echo-home-voice/pull/36) \u2014 ci: analyze GitHub Actions with CodeQL\n- [#37](https://github.com/4alvit/amazon-echo-home-voice/pull/37) \u2014 ci: minimize declared reusable workflow permissions\n- [#38](https://github.com/4alvit/amazon-echo-home-voice/pull/38) \u2014 build: hash-lock Python dependencies and fix urllib3 advisories\n- [#39](https://github.com/4alvit/amazon-echo-home-voice/pull/39) \u2014 docs: use patched uv 0.12.18 for lock regeneration\n- [#35](https://github.com/4alvit/amazon-echo-home-voice/pull/35) \u2014 build(deps): bump the github-actions group across 1 directory with 5 updates\n- [#40](https://github.com/4alvit/amazon-echo-home-voice/pull/40) \u2014 fix: verify TLS chain keys and package Lambda dependencies\n- [#41](https://github.com/4alvit/amazon-echo-home-voice/pull/41) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#43](https://github.com/4alvit/amazon-echo-home-voice/pull/43) \u2014 build(deps): bump the github-actions group with 11 updates\n- [#42](https://github.com/4alvit/amazon-echo-home-voice/pull/42) \u2014 build(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm\n- [#44](https://github.com/4alvit/amazon-echo-home-voice/pull/44) \u2014 Add installable source candidates and RC fuzz qualification\n- [#45](https://github.com/4alvit/amazon-echo-home-voice/pull/45) \u2014 Use durable release workflows and verified publication guards\n\n\n\n\n\nAll 28 commits\n\n- [bcf0e005489c](https://github.com/4alvit/amazon-echo-home-voice/commit/bcf0e005489c6bbb416269839fd1480ed797b89b) \u2014 docs: clarify optional numeric metric validation\n- [b6c2e95cfe54](https://github.com/4alvit/amazon-echo-home-voice/commit/b6c2e95cfe54aab119027dd733301285f6ff6d78) \u2014 fix: support optional power flow reports in the CLI\n- [7eb5d06f4bca](https://github.com/4alvit/amazon-echo-home-voice/commit/7eb5d06f4bcacc61016ea9291b292dcfdcd5e114) \u2014 chore(ci): enable quiet CodeRabbit reviews (#22)\n- [b102cdc4aab6](https://github.com/4alvit/amazon-echo-home-voice/commit/b102cdc4aab644be9716a72dd906c19f07e163ae) \u2014 Merge main to refresh reviewed pull request checks\n- [6b225742bb34](https://github.com/4alvit/amazon-echo-home-voice/commit/6b225742bb34f8967a4825dd2d421d7132f1d3a8) \u2014 test: preserve single-use assertions under bounded SQLite contention\n- [f4aedeac67f0](https://github.com/4alvit/amazon-echo-home-voice/commit/f4aedeac67f020fc2538f4433e48c713d4c3eeb8) \u2014 Merge pull request #21 from 4alvit/codex/review-grok-apps-20261002\n- [729651d1df9e](https://github.com/4alvit/amazon-echo-home-voice/commit/729651d1df9e31d1c2fde0231da1059fd7ee5f74) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#23)\n- [2e596bd908a6](https://github.com/4alvit/amazon-echo-home-voice/commit/2e596bd908a6ff5cc6269701b67745787cb304f1) \u2014 docs: connect energy reports and Echo device guides (#24)\n- [8407ea47c7b7](https://github.com/4alvit/amazon-echo-home-voice/commit/8407ea47c7b70ff28ffe9f92d5a317339846f986) \u2014 \\[StepSecurity\\] Apply security best practices (#25)\n- [250508154d77](https://github.com/4alvit/amazon-echo-home-voice/commit/250508154d77ee1940c8591cf88953de4f3cb297) \u2014 ci: request CodeRabbit autofix after completed reviews (#31)\n- [194e7aecaea4](https://github.com/4alvit/amazon-echo-home-voice/commit/194e7aecaea4a2a1fedaf706a6f1489b61bc12f6) \u2014 fix: harden integration proxy and add OpenSSF evidence (#32)\n- [913c32dcabdd](https://github.com/4alvit/amazon-echo-home-voice/commit/913c32dcabddff454599910fae1bd3547c9569b3) \u2014 fix: construct delimiter-free OAuth proxy response headers\n- [3c2b06339a1f](https://github.com/4alvit/amazon-echo-home-voice/commit/3c2b06339a1f1f43e99eee6ec69c30e49d22d1d7) \u2014 Merge pull request #33 from 4alvit/codex/oauth-header-boundary-20261008\n- [557d7aa6f8d9](https://github.com/4alvit/amazon-echo-home-voice/commit/557d7aa6f8d97513872d1bf6544d4a448c8a9985) \u2014 fix: reject oversized gateway timestamps without losing fallback\n- [0e93213cb3ba](https://github.com/4alvit/amazon-echo-home-voice/commit/0e93213cb3ba0fa41f9779d323ec9aa35a203493) \u2014 Group coherent GitHub Actions updates (#27)\n- [072146276295](https://github.com/4alvit/amazon-echo-home-voice/commit/072146276295c6ff83bbbc05c34312eb91677cb3) \u2014 Merge remote-tracking branch 'origin/main' into codex/gateway-timestamp-boundary-20261008\n- [586579529af1](https://github.com/4alvit/amazon-echo-home-voice/commit/586579529af17bd437bab36699fe47b922f9e35b) \u2014 Merge pull request #34 from 4alvit/codex/gateway-timestamp-boundary-20261008\n- [673ba5de4eda](https://github.com/4alvit/amazon-echo-home-voice/commit/673ba5de4eda6a80cced4ca316122876479bd35d) \u2014 ci: analyze GitHub Actions with CodeQL (#36)\n- [605ec6920258](https://github.com/4alvit/amazon-echo-home-voice/commit/605ec6920258d5cfa4fa8e8c544032aec827f148) \u2014 ci: minimize declared reusable workflow permissions (#37)\n- [538adb986888](https://github.com/4alvit/amazon-echo-home-voice/commit/538adb986888cd6552ff2e7e54ccea1e2df4f498) \u2014 build: hash-lock Python dependencies and update urllib3 (#38)\n- [507625e56bb6](https://github.com/4alvit/amazon-echo-home-voice/commit/507625e56bb69e5292e2276172e99f863b6d9b54) \u2014 docs: use patched uv for lock regeneration (#39)\n- [25c48f143dc5](https://github.com/4alvit/amazon-echo-home-voice/commit/25c48f143dc51bee7f6c91fb1102ea7085b283e2) \u2014 build(deps): bump the github-actions group across 1 directory with 5 updates (#35)\n- [9a8598af1c92](https://github.com/4alvit/amazon-echo-home-voice/commit/9a8598af1c92939925eeea659000c50787a2aa15) \u2014 fix: verify TLS chain keys and package Lambda dependencies (#40)\n- [697ef9eab929](https://github.com/4alvit/amazon-echo-home-voice/commit/697ef9eab929f6598a53bd9a9106232e917c618f) \u2014 build(deps): bump the github-actions group with 4 updates (#41)\n- [be51037a64f9](https://github.com/4alvit/amazon-echo-home-voice/commit/be51037a64f9a23e847d1634f1d0561efc6fd77e) \u2014 build(deps): bump the github-actions group with 11 updates (#43)\n- [3add334e7ced](https://github.com/4alvit/amazon-echo-home-voice/commit/3add334e7ced665fed660f7ee2f7c215b0a94794) \u2014 build(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm (#42)\n- [4b605e327751](https://github.com/4alvit/amazon-echo-home-voice/commit/4b605e32775167419b059b92be98dfde6ebfb447) \u2014 Add installable source candidates and RC fuzz qualification (#44)\n- [5e971f02109e](https://github.com/4alvit/amazon-echo-home-voice/commit/5e971f02109e8a5de5d7df29adc087c10ca8ed7f) \u2014 Pin durable release workflow and verified publication guards (#45)\n\n\n\n\n\n---\n\n## 4alvit/dbus-service-template \u2014 v0.1.1\n\n[Published stable release](https://github.com/4alvit/dbus-service-template/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n### Added\n\n- Publish reproducible template-source beta and RC archives with frozen version receipts.\n- Qualify RCs with bounded Linux answer-parser and output-path campaigns.\n- Declare generated-application inputs explicitly so release tooling cannot enter generated apps.\n\n- Document the template identity, supported generation path, governance and scoped security assessment.\n- Validate typed source answers before writing output; reject code/shell delimiters and unsupported license choices.\n- Require TLS for broker credentials, constrain TLS ciphers and reject oversized or non-UTF-8 MQTT messages.\n- Security-scan rendered Python in CI as well as repository tooling.\n- Reject malformed answer lines and keep invalid MQTT payloads from affecting bounded reconnect backoff.\n\n### Upgrade\n\n- Existing credentialed MQTT configurations must enable verified TLS and use the broker's TLS port and a certificate meeting OpenSSL security level 3 (normally RSA 3072\n  or ECC 256 bits). Source answers containing unsupported code delimiters must be simplified.\n- Extract the source archive, install its hashed template requirements, and render into a new directory.\n- The template source version is separate from the generated application version; review generated changes before any deployment.\n\n### Security\n\n- Reserved context aliases and colliding output paths are rejected. Generated files exclude repository release and fuzz infrastructure.\n- Tests use synthetic answers and temporary output paths; device firmware, broker authentication and hardware behavior require separate acceptance.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.3](https://github.com/4alvit/dbus-service-template/releases/tag/v0.1.1-rc.3).\n\nSource: `e3455944c21954a6b7de7b9c68ce0beca3d602c6`\n\nValidation: https://github.com/4alvit/dbus-service-template/actions/runs/38510718581\n\nPromotion: https://github.com/4alvit/dbus-service-template/actions/runs/38511235354\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [e3455944c219](https://github.com/4alvit/dbus-service-template/commit/e3455944c21954a6b7de7b9c68ce0beca3d602c6).\nPrevious stable source: [f2554a989414](https://github.com/4alvit/dbus-service-template/commit/f2554a9894146029d951194ec67e5fb6fbbf47e7).\n\n[Full source history](https://github.com/4alvit/dbus-service-template/compare/f2554a9894146029d951194ec67e5fb6fbbf47e7...e3455944c21954a6b7de7b9c68ce0beca3d602c6). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 23 merged pull requests\n\n- [#15](https://github.com/4alvit/dbus-service-template/pull/15) \u2014 ci: add nightly validation and local operations\n- [#16](https://github.com/4alvit/dbus-service-template/pull/16) \u2014 Approve trusted PRs without requiring automerge\n- [#17](https://github.com/4alvit/dbus-service-template/pull/17) \u2014 fix: pin auto-approval to merged toolkit commit\n- [#18](https://github.com/4alvit/dbus-service-template/pull/18) \u2014 fix: target the Venus OS Python 3.12 runtime\n- [#19](https://github.com/4alvit/dbus-service-template/pull/19) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN\n- [#20](https://github.com/4alvit/dbus-service-template/pull/20) \u2014 ci: consolidate validation and enable protected native auto-merge\n- [#22](https://github.com/4alvit/dbus-service-template/pull/22) \u2014 chore(ci): enable quiet CodeRabbit reviews\n- [#21](https://github.com/4alvit/dbus-service-template/pull/21) \u2014 docs: include dependency review in the validation inventory\n- [#23](https://github.com/4alvit/dbus-service-template/pull/23) \u2014 security: harden code-scanning workflows and CI permissions\n- [#24](https://github.com/4alvit/dbus-service-template/pull/24) \u2014 ci: prepare optional runner reserve without enabling it\n- [#25](https://github.com/4alvit/dbus-service-template/pull/25) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#31](https://github.com/4alvit/dbus-service-template/pull/31) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#32](https://github.com/4alvit/dbus-service-template/pull/32) \u2014 fix: confine template rendering and document security evidence\n- [#33](https://github.com/4alvit/dbus-service-template/pull/33) \u2014 Refresh release contracts and OpenSSF evidence\n- [#26](https://github.com/4alvit/dbus-service-template/pull/26) \u2014 Group coherent GitHub Actions updates\n- [#35](https://github.com/4alvit/dbus-service-template/pull/35) \u2014 ci: analyze GitHub Actions with CodeQL\n- [#36](https://github.com/4alvit/dbus-service-template/pull/36) \u2014 fix: keep Bandit exclusions within directory boundaries\n- [#34](https://github.com/4alvit/dbus-service-template/pull/34) \u2014 chore(deps): bump the github-actions group across 1 directory with 8 updates\n- [#37](https://github.com/4alvit/dbus-service-template/pull/37) \u2014 chore(deps): bump the github-actions group with 4 updates\n- [#38](https://github.com/4alvit/dbus-service-template/pull/38) \u2014 chore(deps): bump the github-actions group with 4 updates\n- [#40](https://github.com/4alvit/dbus-service-template/pull/40) \u2014 Publish versioned template source candidates with isolated render acceptance\n- [#42](https://github.com/4alvit/dbus-service-template/pull/42) \u2014 fix: complete template identity and security assessment\n- [#41](https://github.com/4alvit/dbus-service-template/pull/41) \u2014 chore(deps): bump the github-actions group across 1 directory with 13 updates\n\n\n\n\n\nAll 28 commits\n\n- [77b37996095c](https://github.com/4alvit/dbus-service-template/commit/77b37996095cbec1bbbe318cc5dc5c028588c330) \u2014 ci: add nightly validation and local operations (#15)\n- [71c479f4200c](https://github.com/4alvit/dbus-service-template/commit/71c479f4200c1c94f0f8f3511ffd5188a2e2331a) \u2014 ci: approve trusted PRs without the automerge label (#16)\n- [54f0c08cd032](https://github.com/4alvit/dbus-service-template/commit/54f0c08cd032283b29daa4f5a950aabef1e41161) \u2014 fix: pin auto-approval to merged toolkit commit (#17)\n- [7709b366635c](https://github.com/4alvit/dbus-service-template/commit/7709b366635cba3d8ed17395e196b874b225b613) \u2014 fix: generate services for the Venus OS Python 3.12 runtime (#18)\n- [984493a92c80](https://github.com/4alvit/dbus-service-template/commit/984493a92c80075ca0d3e764c749a16fbff32f48) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN (#19)\n- [17205aa3fab6](https://github.com/4alvit/dbus-service-template/commit/17205aa3fab63bf3acde148723adb4605102831b) \u2014 ci: consolidate required validation and use protected native auto-merge (#20)\n- [0a0dbfdcc1c9](https://github.com/4alvit/dbus-service-template/commit/0a0dbfdcc1c943776865824dd40d115d936b91dd) \u2014 docs: include dependency review in the validation inventory\n- [354f3c2a45a2](https://github.com/4alvit/dbus-service-template/commit/354f3c2a45a2b499686ad0b8db8a050f85e9c308) \u2014 chore(ci): enable quiet CodeRabbit reviews (#22)\n- [4b5bc5b74543](https://github.com/4alvit/dbus-service-template/commit/4b5bc5b745436a238d542f66932daa9b33b6c494) \u2014 Merge main to refresh reviewed pull request checks\n- [8cb69944dd55](https://github.com/4alvit/dbus-service-template/commit/8cb69944dd55d02b389689fb1c1ef1d7a8c341ca) \u2014 Merge pull request #21 from 4alvit/codex/review-grok-apps-20261002\n- [5bee02bcac2e](https://github.com/4alvit/dbus-service-template/commit/5bee02bcac2eb2bbafb48fc446ac05fb32c8c715) \u2014 security: harden code-scanning workflows and CI permissions (#23)\n- [99df3189eab5](https://github.com/4alvit/dbus-service-template/commit/99df3189eab5e0b808decbbc1f0121ce647647a3) \u2014 ci: prepare optional runner reserve without enabling it (#24)\n- [52836e210612](https://github.com/4alvit/dbus-service-template/commit/52836e210612f99186636fa2442b9d9da868e001) \u2014 \\[StepSecurity\\] Apply security best practices (#25)\n- [88c813ec5792](https://github.com/4alvit/dbus-service-template/commit/88c813ec579222dfdc195de750fa51b39c82fd1a) \u2014 ci: request CodeRabbit autofix after completed reviews (#31)\n- [5a658bb2246d](https://github.com/4alvit/dbus-service-template/commit/5a658bb2246d885ed685474d296ec2651fbad1d0) \u2014 docs: document contribution, security and OpenSSF evidence\n- [ab1754cb0ceb](https://github.com/4alvit/dbus-service-template/commit/ab1754cb0cebba2dd21171fc7a892b23d43cee45) \u2014 security: record verified OpenSSF criteria and outstanding evidence\n- [f67edb0f6610](https://github.com/4alvit/dbus-service-template/commit/f67edb0f6610b78e12908e660bd2dbb873cf40f5) \u2014 fix: reject symlinked template ancestors and correct evidence links\n- [535b8a3b9750](https://github.com/4alvit/dbus-service-template/commit/535b8a3b97506560cb59203bf81f9874f1871228) \u2014 Merge pull request #32 from 4alvit/codex/openssf-hardening-20261008\n- [88b516d6b8b9](https://github.com/4alvit/dbus-service-template/commit/88b516d6b8b90b0aa148d7009d59bfc2da5e6a59) \u2014 chore: refresh release contracts and OpenSSF evidence (#33)\n- [8b513dc4d1ba](https://github.com/4alvit/dbus-service-template/commit/8b513dc4d1ba2223576665234f77c54efb01b9d3) \u2014 chore(deps): bump github/codeql-action/analyze from 4.37.4 to 4.38.2 (#26)\n- [5c11a3a8bf47](https://github.com/4alvit/dbus-service-template/commit/5c11a3a8bf4788577b66a58b0f411f7ac9b8b0b2) \u2014 ci: analyze GitHub Actions with CodeQL (#35)\n- [756769ecc3a7](https://github.com/4alvit/dbus-service-template/commit/756769ecc3a7972982823b6d9e57a0f0ab5cbb06) \u2014 fix: verify Bandit directory discovery boundaries (#36)\n- [8b7827d7ae97](https://github.com/4alvit/dbus-service-template/commit/8b7827d7ae97682cc3488d128faf437a504534e5) \u2014 chore(deps): bump the github-actions group across 1 directory with 8 updates (#34)\n- [be8b35f50ba6](https://github.com/4alvit/dbus-service-template/commit/be8b35f50ba6433329b6b1b1f6d45379f09b58b2) \u2014 chore(deps): bump the github-actions group with 4 updates (#37)\n- [e3a94dd75e7b](https://github.com/4alvit/dbus-service-template/commit/e3a94dd75e7b0d50c6e4030121871b61cc0b4a60) \u2014 chore(deps): bump the github-actions group with 4 updates (#38)\n- [6953cfcc5cd2](https://github.com/4alvit/dbus-service-template/commit/6953cfcc5cd21505349835fb9d0e8e1770a7174a) \u2014 feat(release): qualify versioned template source candidates (#40)\n- [824ebca9d9fd](https://github.com/4alvit/dbus-service-template/commit/824ebca9d9fdb1d24b0f81d6fc857ff3bde4bab1) \u2014 fix: complete template identity and security assessment (#42)\n- [e3455944c219](https://github.com/4alvit/dbus-service-template/commit/e3455944c21954a6b7de7b9c68ce0beca3d602c6) \u2014 chore(deps): bump the github-actions group across 1 directory with 13 updates (#41)\n\n\n\n\n\n---\n\n## 4alvit/energy-data-rag-pipeline \u2014 v0.2.12\n\n[Published stable release](https://github.com/4alvit/energy-data-rag-pipeline/releases/tag/v0.2.12)\n\n## Changes in 0.2.12\n\n### Changed\n\nGive FCC a bounded startup grace period before liveness checks begin, so slow initialization does not cause a restart loop. Open the next beta series after stable 0.2.11, including the TLS, dependency and release-verification improvements added since that release.\n\n### Upgrade\n\nPreserve PostgreSQL/pgvector data and existing broker and certificate settings. The FCC deployment permits up to ten minutes for startup and retains liveness checks after initialization. Publishing this beta does not apply the deployment manifests or migrate stored data.\n\n### Security\n\nKeep the pinned FCC source, hash-locked dependencies and required native AMD64/ARM64 checks. No verification or container security setting is relaxed by the startup grace period.\n\n## Build provenance\n\nPromoted unchanged from [v0.2.12-rc.1](https://github.com/4alvit/energy-data-rag-pipeline/releases/tag/v0.2.12-rc.1).\n\nSource: `ec37f2187e7fe7c696b0dbd1f81ce4578902133e`\n\nValidation: https://github.com/4alvit/energy-data-rag-pipeline/actions/runs/38489038609\n\nPromotion: https://github.com/4alvit/energy-data-rag-pipeline/actions/runs/38510725624\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.2.11\n\nReleased source: [ec37f2187e7f](https://github.com/4alvit/energy-data-rag-pipeline/commit/ec37f2187e7fe7c696b0dbd1f81ce4578902133e).\nPrevious stable source: [9b856cae878e](https://github.com/4alvit/energy-data-rag-pipeline/commit/9b856cae878e55589e280ebf772c98648278603a).\n\n[Full source history](https://github.com/4alvit/energy-data-rag-pipeline/compare/9b856cae878e55589e280ebf772c98648278603a...ec37f2187e7fe7c696b0dbd1f81ce4578902133e). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 29 merged pull requests\n\n- [#141](https://github.com/4alvit/energy-data-rag-pipeline/pull/141) \u2014 deploy: pin RAG 0.2.11 and stabilize startup on MP\n- [#144](https://github.com/4alvit/energy-data-rag-pipeline/pull/144) \u2014 ci: prepare optional runner reserve without enabling it\n- [#143](https://github.com/4alvit/energy-data-rag-pipeline/pull/143) \u2014 chore(deps): update github actions and reusable workflows\n- [#145](https://github.com/4alvit/energy-data-rag-pipeline/pull/145) \u2014 build(deps): bump langgraph-sdk from 0.4.2 to 0.4.4\n- [#147](https://github.com/4alvit/energy-data-rag-pipeline/pull/147) \u2014 build(deps): bump multidict from 6.7.1 to 6.9.1\n- [#146](https://github.com/4alvit/energy-data-rag-pipeline/pull/146) \u2014 build(deps): bump multidict from 6.7.1 to 6.9.1 in /deploy/fcc\n- [#148](https://github.com/4alvit/energy-data-rag-pipeline/pull/148) \u2014 Remove unused corpus HTML helper\n- [#149](https://github.com/4alvit/energy-data-rag-pipeline/pull/149) \u2014 chore(deps): update github actions and reusable workflows\n- [#150](https://github.com/4alvit/energy-data-rag-pipeline/pull/150) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#151](https://github.com/4alvit/energy-data-rag-pipeline/pull/151) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#152](https://github.com/4alvit/energy-data-rag-pipeline/pull/152) \u2014 feat: bind release notes to source and document security evidence\n- [#153](https://github.com/4alvit/energy-data-rag-pipeline/pull/153) \u2014 Allow RAG API cold startup under MP contention\n- [#154](https://github.com/4alvit/energy-data-rag-pipeline/pull/154) \u2014 build: update uv to patched 0.12.18\n- [#155](https://github.com/4alvit/energy-data-rag-pipeline/pull/155) \u2014 Document verified application and release TLS key policy\n- [#156](https://github.com/4alvit/energy-data-rag-pipeline/pull/156) \u2014 chore(deps): update github actions and reusable workflows\n- [#157](https://github.com/4alvit/energy-data-rag-pipeline/pull/157) \u2014 fix: verify TLS chain keys for MCP and corpus downloads\n- [#158](https://github.com/4alvit/energy-data-rag-pipeline/pull/158) \u2014 chore(deps): update github actions and reusable workflows\n- [#159](https://github.com/4alvit/energy-data-rag-pipeline/pull/159) \u2014 chore(deps): update github actions and reusable workflows\n- [#160](https://github.com/4alvit/energy-data-rag-pipeline/pull/160) \u2014 chore(deps): update github actions and reusable workflows\n- [#163](https://github.com/4alvit/energy-data-rag-pipeline/pull/163) \u2014 docs: clarify supported RAG installation channel\n- [#164](https://github.com/4alvit/energy-data-rag-pipeline/pull/164) \u2014 docs: fix self-ingestion staging and query response example\n- [#165](https://github.com/4alvit/energy-data-rag-pipeline/pull/165) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#161](https://github.com/4alvit/energy-data-rag-pipeline/pull/161) \u2014 build(deps): bump python from `51dafde` to `a2b82f3`\n- [#162](https://github.com/4alvit/energy-data-rag-pipeline/pull/162) \u2014 chore(deps): update github actions and reusable workflows\n- [#166](https://github.com/4alvit/energy-data-rag-pipeline/pull/166) \u2014 Allow FCC startup grace and prepare the 0.2.12 beta series\n- [#167](https://github.com/4alvit/energy-data-rag-pipeline/pull/167) \u2014 fix(ci): validate pinned Scorecard 5.6 results\n- [#168](https://github.com/4alvit/energy-data-rag-pipeline/pull/168) \u2014 Move FCC caches off writable container snapshots\n- [#169](https://github.com/4alvit/energy-data-rag-pipeline/pull/169) \u2014 chore(deps): update github actions and reusable workflows\n- [#170](https://github.com/4alvit/energy-data-rag-pipeline/pull/170) \u2014 Add frozen candidate versions and RC fuzz qualification\n\n\n\n\n\nAll 34 commits\n\n- [b33da08e6dd1](https://github.com/4alvit/energy-data-rag-pipeline/commit/b33da08e6dd1f67828092881c5949943a7e15060) \u2014 Pin RAG services to verified 0.2.11 image with rolling API update\n- [5bfc4badc2be](https://github.com/4alvit/energy-data-rag-pipeline/commit/5bfc4badc2bef8b19f810baca2692715439ac417) \u2014 fix: preserve MCP availability during cold startup on MP\n- [f58e91982f3b](https://github.com/4alvit/energy-data-rag-pipeline/commit/f58e91982f3b9826b7e47c1f0ddca20c063797e8) \u2014 fix: align rollout progress deadlines with startup probes\n- [d83f1c7249a3](https://github.com/4alvit/energy-data-rag-pipeline/commit/d83f1c7249a3b6214aded21627042825914a2192) \u2014 Merge remote-tracking branch 'origin/main' into deploy/verified-rag-0.2.11\n- [f609a07be41b](https://github.com/4alvit/energy-data-rag-pipeline/commit/f609a07be41bcd933adc7632c9a028d0d6e5644a) \u2014 deploy: pin the precompiled RAG release candidate image\n- [d7ce9df351e0](https://github.com/4alvit/energy-data-rag-pipeline/commit/d7ce9df351e0c71b8e83abc547461e47e59ff501) \u2014 Merge pull request #141 from 4alvit/deploy/verified-rag-0.2.11\n- [a3d30f9d48c2](https://github.com/4alvit/energy-data-rag-pipeline/commit/a3d30f9d48c271fed6174dad028627a8b4900142) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#144)\n- [6c7045c88b5e](https://github.com/4alvit/energy-data-rag-pipeline/commit/6c7045c88b5e5ea1ca9e1c72a225387558aa136c) \u2014 chore(deps): update github actions and reusable workflows (#143)\n- [57c8fbf7e2b0](https://github.com/4alvit/energy-data-rag-pipeline/commit/57c8fbf7e2b011a3b5959da46cb90e317ea6dae0) \u2014 build(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 (#145)\n- [bc33dd61ba47](https://github.com/4alvit/energy-data-rag-pipeline/commit/bc33dd61ba478b14422c64e85ba537510f19c1da) \u2014 build(deps): bump multidict from 6.7.1 to 6.9.1 (#147)\n- [c274a5bad353](https://github.com/4alvit/energy-data-rag-pipeline/commit/c274a5bad3531741336e60203c70be20c7bbfadf) \u2014 build(deps): bump multidict from 6.7.1 to 6.9.1 in /deploy/fcc (#146)\n- [1e35c010b27d](https://github.com/4alvit/energy-data-rag-pipeline/commit/1e35c010b27d64b89a9ca1280d534e0d96379cb9) \u2014 Remove unused corpus HTML helper (#148)\n- [3eb16cfc1b9e](https://github.com/4alvit/energy-data-rag-pipeline/commit/3eb16cfc1b9e898daf43ea36a6bd3ee314d70fdf) \u2014 chore(deps): update github actions and reusable workflows (#149)\n- [e6bd751a0fdd](https://github.com/4alvit/energy-data-rag-pipeline/commit/e6bd751a0fdde38cee504946917afda831b77c71) \u2014 \\[StepSecurity\\] Apply security best practices (#150)\n- [ea32e67f1b49](https://github.com/4alvit/energy-data-rag-pipeline/commit/ea32e67f1b49e82b74d4163705f5581fdacbc2c3) \u2014 ci: request CodeRabbit autofix after completed reviews (#151)\n- [c1a3966c7e30](https://github.com/4alvit/energy-data-rag-pipeline/commit/c1a3966c7e306f61d778b69c99f268ed58c6583c) \u2014 feat: bind release notes to source and document security evidence (#152)\n- [e41e37f0da61](https://github.com/4alvit/energy-data-rag-pipeline/commit/e41e37f0da61d42b26ea3c75f421227adf20ad2b) \u2014 fix(k3s): allow API cold initialization under MP contention (#153)\n- [a4a938475c72](https://github.com/4alvit/energy-data-rag-pipeline/commit/a4a938475c726f547924838435bfe5207ee9ee5a) \u2014 build: update uv to patched 0.12.18 (#154)\n- [94f921bfcb3e](https://github.com/4alvit/energy-data-rag-pipeline/commit/94f921bfcb3e05e47e791f201a9ae88dc8c687d8) \u2014 Document verified application and release TLS key policy (#155)\n- [44c512777e2e](https://github.com/4alvit/energy-data-rag-pipeline/commit/44c512777e2e8a11c84a39c29df2f5341cbedefe) \u2014 chore(deps): update github actions and reusable workflows (#156)\n- [0e76e119b58c](https://github.com/4alvit/energy-data-rag-pipeline/commit/0e76e119b58cdf560b2cc25ef21f99cc0eeb8ba8) \u2014 fix: verify TLS chain keys for MCP and corpus downloads (#157)\n- [9911815078ea](https://github.com/4alvit/energy-data-rag-pipeline/commit/9911815078ea21a24bf79772b2f2273ea151b5ed) \u2014 chore(deps): update github actions and reusable workflows (#158)\n- [bf8a1f08ac2a](https://github.com/4alvit/energy-data-rag-pipeline/commit/bf8a1f08ac2adc1d2a1872527a6cc3a91c7870ce) \u2014 chore(deps): update github actions and reusable workflows (#159)\n- [c9c3d3fc4100](https://github.com/4alvit/energy-data-rag-pipeline/commit/c9c3d3fc410082ed6e0141346ff304d016bb06fa) \u2014 chore(deps): update github actions and reusable workflows (#160)\n- [0479ab425ec7](https://github.com/4alvit/energy-data-rag-pipeline/commit/0479ab425ec723da6f2e9f3ffe1dabb3d4444e3e) \u2014 docs: clarify supported RAG installation channel (#163)\n- [2d7ce3172afd](https://github.com/4alvit/energy-data-rag-pipeline/commit/2d7ce3172afda3afdb0aec7cfcdd8acd9dc99ce3) \u2014 docs: fix self-ingestion staging and query response example (#164)\n- [89c0fb02c613](https://github.com/4alvit/energy-data-rag-pipeline/commit/89c0fb02c6133a0f813457193177c44015512f33) \u2014 fix(release): use authoritative GitHub HTTP status (#165)\n- [3b8d59a42859](https://github.com/4alvit/energy-data-rag-pipeline/commit/3b8d59a42859b3abd36c4bf86be615f63cd447f1) \u2014 build(deps): bump python from `51dafde` to `a2b82f3` (#161)\n- [74208dd067ff](https://github.com/4alvit/energy-data-rag-pipeline/commit/74208dd067ff0df3c4206c78a06cb09f71c62993) \u2014 chore(deps): update github actions and reusable workflows (#162)\n- [e4630bc1e55c](https://github.com/4alvit/energy-data-rag-pipeline/commit/e4630bc1e55ca298fc5fff3737ba3a1a4311d1ae) \u2014 Allow FCC startup grace and prepare the 0.2.12 beta series (#166)\n- [d91a8d5d537d](https://github.com/4alvit/energy-data-rag-pipeline/commit/d91a8d5d537d423b68cde02651fa58a776620ccc) \u2014 fix(ci): validate pinned Scorecard 5.6 results (#167)\n- [f634c60ecea7](https://github.com/4alvit/energy-data-rag-pipeline/commit/f634c60ecea7636f97d4e569332295b16ffd0ab0) \u2014 Move FCC caches off writable container snapshots (#168)\n- [8829bff35bd2](https://github.com/4alvit/energy-data-rag-pipeline/commit/8829bff35bd2c7ac593e0af40b459dac57ea2cab) \u2014 chore(deps): update github actions and reusable workflows (#169)\n- [ec37f2187e7f](https://github.com/4alvit/energy-data-rag-pipeline/commit/ec37f2187e7fe7c696b0dbd1f81ce4578902133e) \u2014 Add frozen candidate versions and RC fuzz qualification (#170)\n\n\n\n\n\n---\n\n## 4alvit/esphome-ble-sensor-patterns \u2014 v0.1.1\n\n[Published stable release](https://github.com/4alvit/esphome-ble-sensor-patterns/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n### Added\n\nVersioned source archives with explicit membership, extracted-source acceptance,\nASan/UBSan regression tests and RC-only mutation fuzzing of the production Inkbird\nparser. Eight pinned ESPHome compile checks remain required.\n\n### Fixed\n\nReplace the unsupported fixed-0x038A/0x2D Inkbird layout with the narrow internal\nTH1/TH1 Mini compatibility profile documented from pinned upstream decoders.\nSelect one configured sensor MAC; reject external-probe frames and unsupported\nmetadata. Humidity is decoded in hundredths of a percent, not whole percent.\n\n\n### Security\n\nReject malformed/truncated input and impossible humidity/battery percentages\nbefore publishing any reading. Sensor selection is not authentication. Source\npackages contain only reviewed files, never private credentials or firmware.\n\nHash-lock Python dependencies and build tools used by firmware CI and YAML\nvalidation. Replace the vulnerable 2025.11.0 compiler dependency set with the\nofficial ESPHome 2026.10.0b1 prerelease and its supported PlatformIO 6.2.0 range.\n\n### Upgrade\n\nCopy `inkbird_th1_parser.h` beside the Inkbird YAML and configure the new private\n`inkbird_th1_mac` secret. This example intentionally supports only internal-sensor\nframes in the documented profile. Earlier TH2/TH3 claims were not substantiated;\nother revisions and external probes require separate validation. No hardware or\nradio validation was performed for this source release.\n\nThe compile-only CI compiler is a prerelease and now requires Linux with\nCPython 3.12. The installer fails before pip on unsupported hosts. The upstream\nIntel-macOS dependency branch still contains a vulnerable cryptography pin\nand is not supported. Recreate the Linux CPython 3.12 environment\nusing the documented locks and repeat hardware validation before installing\nfirmware. No device is flashed by CI. Synthetic CI Noise keys are nonzero because\nthe new compiler rejects the previously used all-zero fixture; real examples\nstill require separately generated private per-device keys.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.2](https://github.com/4alvit/esphome-ble-sensor-patterns/releases/tag/v0.1.1-rc.2).\n\nSource: `f49ab62fc61d4f6f5987af5316ee984cab7df9d0`\n\nValidation: https://github.com/4alvit/esphome-ble-sensor-patterns/actions/runs/38512090138\n\nPromotion: https://github.com/4alvit/esphome-ble-sensor-patterns/actions/runs/38512747597\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [f49ab62fc61d](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/f49ab62fc61d4f6f5987af5316ee984cab7df9d0).\nPrevious stable source: [82015aea7c41](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/82015aea7c419fab7ea1ba2db8fb599c14876c87).\n\n[Full source history](https://github.com/4alvit/esphome-ble-sensor-patterns/compare/82015aea7c419fab7ea1ba2db8fb599c14876c87...f49ab62fc61d4f6f5987af5316ee984cab7df9d0). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 11 merged pull requests\n\n- [#31](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/31) \u2014 Refresh release contracts and OpenSSF evidence\n- [#32](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/32) \u2014 Enforce immutable action references and dependency hashes\n- [#33](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/33) \u2014 ci: include Python helpers in CodeQL analysis\n- [#26](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/26) \u2014 Group coherent GitHub Actions updates\n- [#35](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/35) \u2014 build: lock ESPHome CI toolchain and fix vulnerable dependencies\n- [#34](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/34) \u2014 build(deps): bump the github-actions group across 1 directory with 7 updates\n- [#36](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/36) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#37](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/37) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#38](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/38) \u2014 Qualify Inkbird parser and versioned source beta/RC releases\n- [#39](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/39) \u2014 Complete OpenSSF evidence and project governance\n- [#40](https://github.com/4alvit/esphome-ble-sensor-patterns/pull/40) \u2014 fix: preserve separate approval for stable promotions\n\n\n\n\n\nAll 13 commits\n\n- [ad1d8dd27023](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/ad1d8dd27023833695f7796e5a287dcf652bd3bd) \u2014 chore: refresh release contracts and OpenSSF evidence\n- [2eaed8192010](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/2eaed8192010d996e2ba24b91f30d97b65db6d32) \u2014 Merge pull request #31 from 4alvit/codex/openssf-evidence-followup-20261008\n- [2a68ee4ed89b](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/2a68ee4ed89b4362221d7a96d8348b5852d2fd19) \u2014 Enforce immutable actions and hash-check workflow dependencies (#32)\n- [c2a158cac81b](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/c2a158cac81bd8579f7393f862ed54909c490181) \u2014 ci: include Python helpers in CodeQL analysis (#33)\n- [f03385218ae5](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/f03385218ae5147dfb3e22b6b932114ba19512a1) \u2014 Group coherent GitHub Actions updates (#26)\n- [0535f61cb875](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/0535f61cb875eaecc3e3643297bc63bd11031e73) \u2014 build: lock ESPHome CI toolchain and fix vulnerable dependencies (#35)\n- [45e5e0c31604](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/45e5e0c316041a68a5447b70b86b41db5b2d548b) \u2014 build(deps): bump the github-actions group across 1 directory with 7 updates (#34)\n- [0f65e6fc599d](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/0f65e6fc599df8a9cae6ad8545b644e9a8494596) \u2014 build(deps): bump the github-actions group with 4 updates (#36)\n- [b50c74e365a2](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/b50c74e365a29a1407737c29297bad8144663c8a) \u2014 build(deps): bump the github-actions group with 4 updates\n- [1a5c6936dd87](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/1a5c6936dd87d06a1eca1b2302ec6d7e6bd5e114) \u2014 Merge pull request #37 from 4alvit/dependabot/github_actions/github-actions-890bd4867a\n- [f972ed79fe9a](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/f972ed79fe9ad60d72cabc4b36fe47263f4d5734) \u2014 Add verified Inkbird source releases and native RC validation (#38)\n- [98cacac60da8](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/98cacac60da83f079c2774b53fd0c58d548c6483) \u2014 Complete OpenSSF evidence and project governance (#39)\n- [f49ab62fc61d](https://github.com/4alvit/esphome-ble-sensor-patterns/commit/f49ab62fc61d4f6f5987af5316ee984cab7df9d0) \u2014 fix: preserve separate approval for stable promotions (#40)\n\n\n\n\n\n---\n\n## 4alvit/fastapi-mqtt-gateway \u2014 v0.1.5\n\n[Published stable release](https://github.com/4alvit/fastapi-mqtt-gateway/releases/tag/v0.1.5)\n\n## Changes in 0.1.5\n\n### Security\n\nAPI authentication now uses a salted PBKDF2-HMAC-SHA256 verifier with 600,000\niterations and a random 128-bit salt. The server no longer requires a plaintext\nAPI password in its environment. Password verification runs off the event loop\nwith two concurrent KDF operations allowed, preserving the existing login rate\nlimit. Malformed verifiers and unsupported work factors fail closed.\n\n### Upgrade\n\nBefore starting this version, run\n`python -m fastapi_mqtt_gateway.password_hash` in a private terminal, set the\nprinted verifier as `API_PASSWORD_HASH`, and remove `API_PASSWORD` from the\nserver's environment or secret store. Keep the actual password in the API client\nor password manager. The login form, username and JWT interface remain the same.\nAn installation with only the old plaintext setting will fail startup until\nmigrated. Keep HTTPS at the ingress; hashing stored credentials does not encrypt\nlogin requests in transit. No live deployment or secret rotation is automatic.\n\nContribution, vulnerability reporting and deployment-boundary documentation now\ninclude an explicit OpenSSF evidence index. This does not assert an awarded badge.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.5-rc.1](https://github.com/4alvit/fastapi-mqtt-gateway/releases/tag/v0.1.5-rc.1).\n\nSource: `96072da84157ede3ac8bf1aaea40fdffd92c9ada`\n\nValidation: https://github.com/4alvit/fastapi-mqtt-gateway/actions/runs/38487708186\n\nPromotion: https://github.com/4alvit/fastapi-mqtt-gateway/actions/runs/38510732072\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.4\n\nReleased source: [96072da84157](https://github.com/4alvit/fastapi-mqtt-gateway/commit/96072da84157ede3ac8bf1aaea40fdffd92c9ada).\nPrevious stable source: [3f6e3ca6627a](https://github.com/4alvit/fastapi-mqtt-gateway/commit/3f6e3ca6627a382b9d4167f7c094d68a82060845).\n\n[Full source history](https://github.com/4alvit/fastapi-mqtt-gateway/compare/3f6e3ca6627a382b9d4167f7c094d68a82060845...96072da84157ede3ac8bf1aaea40fdffd92c9ada). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 26 merged pull requests\n\n- [#48](https://github.com/4alvit/fastapi-mqtt-gateway/pull/48) \u2014 ci: prepare optional runner reserve without enabling it\n- [#49](https://github.com/4alvit/fastapi-mqtt-gateway/pull/49) \u2014 perf(mqtt): avoid duplicate packet allocation before delivery\n- [#50](https://github.com/4alvit/fastapi-mqtt-gateway/pull/50) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#61](https://github.com/4alvit/fastapi-mqtt-gateway/pull/61) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#62](https://github.com/4alvit/fastapi-mqtt-gateway/pull/62) \u2014 fix: replace plaintext API password storage with salted verifiers\n- [#58](https://github.com/4alvit/fastapi-mqtt-gateway/pull/58) \u2014 Group coherent GitHub Actions updates\n- [#57](https://github.com/4alvit/fastapi-mqtt-gateway/pull/57) \u2014 Group tested Python dependency updates\n- [#63](https://github.com/4alvit/fastapi-mqtt-gateway/pull/63) \u2014 Refresh release contracts and OpenSSF evidence\n- [#66](https://github.com/4alvit/fastapi-mqtt-gateway/pull/66) \u2014 fix: preserve security scan and release-note boundaries\n- [#67](https://github.com/4alvit/fastapi-mqtt-gateway/pull/67) \u2014 build: update uv to patched 0.12.18\n- [#68](https://github.com/4alvit/fastapi-mqtt-gateway/pull/68) \u2014 Document verified application and release TLS key policy\n- [#65](https://github.com/4alvit/fastapi-mqtt-gateway/pull/65) \u2014 Update runtime dependencies and coherent Actions\n- [#69](https://github.com/4alvit/fastapi-mqtt-gateway/pull/69) \u2014 build(deps): bump pyjwt from 2.15.0 to 2.15.1 in the python-dependencies group\n- [#70](https://github.com/4alvit/fastapi-mqtt-gateway/pull/70) \u2014 build(deps): bump the github-actions group across 1 directory with 4 updates\n- [#71](https://github.com/4alvit/fastapi-mqtt-gateway/pull/71) \u2014 fix: verify MQTT broker certificate key minima\n- [#72](https://github.com/4alvit/fastapi-mqtt-gateway/pull/72) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#73](https://github.com/4alvit/fastapi-mqtt-gateway/pull/73) \u2014 fix(release): require exact GitHub not-found diagnostics\n- [#74](https://github.com/4alvit/fastapi-mqtt-gateway/pull/74) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#75](https://github.com/4alvit/fastapi-mqtt-gateway/pull/75) \u2014 build(deps): bump python from `51dafde` to `a2b82f3`\n- [#78](https://github.com/4alvit/fastapi-mqtt-gateway/pull/78) \u2014 test: handle peer closure in MQTT TLS fixture\n- [#76](https://github.com/4alvit/fastapi-mqtt-gateway/pull/76) \u2014 build(deps): bump the python-dependencies group with 3 updates\n- [#77](https://github.com/4alvit/fastapi-mqtt-gateway/pull/77) \u2014 build(deps): bump the github-actions group with 12 updates\n- [#79](https://github.com/4alvit/fastapi-mqtt-gateway/pull/79) \u2014 Fix TLS socket cleanup and publish OpenSSF assurance evidence\n- [#80](https://github.com/4alvit/fastapi-mqtt-gateway/pull/80) \u2014 Add frozen candidate versions and RC fuzz qualification\n- [#81](https://github.com/4alvit/fastapi-mqtt-gateway/pull/81) \u2014 Document confidential conduct reporting contact\n- [#82](https://github.com/4alvit/fastapi-mqtt-gateway/pull/82) \u2014 Use durable release workflows and verified publication guards\n\n\n\n\n\nAll 32 commits\n\n- [2d6216b0813a](https://github.com/4alvit/fastapi-mqtt-gateway/commit/2d6216b0813afe9e41c1aad368b0a7d8ee5ac809) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#48)\n- [70b42c7a65e2](https://github.com/4alvit/fastapi-mqtt-gateway/commit/70b42c7a65e2a07d041a91ee88b8a2f2582ee003) \u2014 perf(mqtt): avoid duplicate packet allocation before delivery (#49)\n- [36c1ec6e9eb3](https://github.com/4alvit/fastapi-mqtt-gateway/commit/36c1ec6e9eb3dc878aa120199f3c137dec9d3b71) \u2014 \\[StepSecurity\\] Apply security best practices (#50)\n- [f811a484471e](https://github.com/4alvit/fastapi-mqtt-gateway/commit/f811a484471e2e52809c57dfaa680b8291f1dec0) \u2014 ci: request CodeRabbit autofix after completed reviews (#61)\n- [af193d23f064](https://github.com/4alvit/fastapi-mqtt-gateway/commit/af193d23f064a23e5a68eb7810ca051bcb30205e) \u2014 docs: document contribution, security and OpenSSF evidence\n- [7c1565e4a910](https://github.com/4alvit/fastapi-mqtt-gateway/commit/7c1565e4a910db6282d7345fede7be69eddd3c48) \u2014 security: record verified OpenSSF criteria and outstanding evidence\n- [88ab43e4e319](https://github.com/4alvit/fastapi-mqtt-gateway/commit/88ab43e4e319e995378f2deb941787be7dc66d47) \u2014 fix: store salted API password verifiers with bounded checks\n- [e6d4a25479a0](https://github.com/4alvit/fastapi-mqtt-gateway/commit/e6d4a25479a0dc4a8ea866fc8b061f2ab52a6b23) \u2014 feat: require source-bound release notes and complete security evidence\n- [7696a0e82830](https://github.com/4alvit/fastapi-mqtt-gateway/commit/7696a0e82830a505ae37779efd8d5bf1108697d9) \u2014 style: normalize release contract test imports and formatting\n- [865b8051f177](https://github.com/4alvit/fastapi-mqtt-gateway/commit/865b8051f17721f17c2ffbe9985ba3abb50b02d3) \u2014 fix: validate release notes before publication state mutations\n- [4dc469db42bb](https://github.com/4alvit/fastapi-mqtt-gateway/commit/4dc469db42bb5e6c2aa64cb934e1f864ed2d1b6f) \u2014 Merge pull request #62 from 4alvit/codex/openssf-hardening-20261008\n- [be745b0e88bc](https://github.com/4alvit/fastapi-mqtt-gateway/commit/be745b0e88bc192a96be37bd8492b8a5e69fe0e2) \u2014 chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.2.0 (#58)\n- [a7e6771c467a](https://github.com/4alvit/fastapi-mqtt-gateway/commit/a7e6771c467afb9432b4929e4a50d2d28bb09990) \u2014 Group tested Python dependency updates (#57)\n- [de575d5e93b4](https://github.com/4alvit/fastapi-mqtt-gateway/commit/de575d5e93b4360a65db5ee23a8f8e007b66670d) \u2014 Refresh release contracts and OpenSSF evidence (#63)\n- [3171af47c9ba](https://github.com/4alvit/fastapi-mqtt-gateway/commit/3171af47c9ba4d4ab027a76c0c5b173540fe10ea) \u2014 fix: preserve security scan and release-note boundaries (#66)\n- [28f2a54de23f](https://github.com/4alvit/fastapi-mqtt-gateway/commit/28f2a54de23f5fbf2e46f0ed740b3a3910dc0397) \u2014 build: update uv to patched 0.12.18 (#67)\n- [a0f249057038](https://github.com/4alvit/fastapi-mqtt-gateway/commit/a0f2490570380712d1ef8e0236f5569eec2cdfde) \u2014 Document verified application and release TLS key policy (#68)\n- [eec95d218c90](https://github.com/4alvit/fastapi-mqtt-gateway/commit/eec95d218c9009692cf99956ba753dc66217d4ab) \u2014 Update runtime dependencies and coherent Actions (#65)\n- [785eb033c126](https://github.com/4alvit/fastapi-mqtt-gateway/commit/785eb033c12606c5a8b9fc28c6311b292380f27c) \u2014 build(deps): bump pyjwt (#69)\n- [efc50b1a4740](https://github.com/4alvit/fastapi-mqtt-gateway/commit/efc50b1a4740653c0424c30970bdf266830c36be) \u2014 build(deps): bump the github-actions group across 1 directory with 4 updates (#70)\n- [ef3281af92c8](https://github.com/4alvit/fastapi-mqtt-gateway/commit/ef3281af92c85ab9cfc584916b73483c26df0c0a) \u2014 fix: verify MQTT broker certificate key minima (#71)\n- [ec8dc547e491](https://github.com/4alvit/fastapi-mqtt-gateway/commit/ec8dc547e491fc07f5a5eb81c6f2fcb2ffbbbe3e) \u2014 build(deps): bump the github-actions group with 4 updates (#72)\n- [a42f25546bdb](https://github.com/4alvit/fastapi-mqtt-gateway/commit/a42f25546bdb876a7d3bd3103f448afa0427dc3e) \u2014 fix(release): require exact GitHub not-found diagnostics (#73)\n- [d13dd5200104](https://github.com/4alvit/fastapi-mqtt-gateway/commit/d13dd52001046a1c446ed99ef87dc239a1f78dd4) \u2014 fix(release): use authoritative GitHub HTTP status (#74)\n- [e6254fb4059d](https://github.com/4alvit/fastapi-mqtt-gateway/commit/e6254fb4059d8e523e64c663051f02323eca84a3) \u2014 build(deps): bump python from `51dafde` to `a2b82f3` (#75)\n- [88763b7078d1](https://github.com/4alvit/fastapi-mqtt-gateway/commit/88763b7078d1296872558e882c4623d630e3455b) \u2014 test: handle peer closure in MQTT TLS fixture (#78)\n- [29ab8d99dcf5](https://github.com/4alvit/fastapi-mqtt-gateway/commit/29ab8d99dcf5019f2b94185441fde623832cb011) \u2014 build(deps): bump the python-dependencies group with 3 updates (#76)\n- [2b049ff35844](https://github.com/4alvit/fastapi-mqtt-gateway/commit/2b049ff3584429367cbe73cb31e05c963c908bfb) \u2014 build(deps): bump the github-actions group with 12 updates (#77)\n- [fd1bbba6905e](https://github.com/4alvit/fastapi-mqtt-gateway/commit/fd1bbba6905e09dc7cfc289895e467a25a7fa391) \u2014 Fix TLS socket cleanup and publish OpenSSF assurance evidence (#79)\n- [b0f79f67c706](https://github.com/4alvit/fastapi-mqtt-gateway/commit/b0f79f67c706231c0f1e6df7f376b9eefb20eff3) \u2014 Add frozen candidate versions and RC fuzz qualification (#80)\n- [b71483186b27](https://github.com/4alvit/fastapi-mqtt-gateway/commit/b71483186b275126deaaad8cad1cf809e7d228dd) \u2014 Document confidential conduct reporting contact (#81)\n- [96072da84157](https://github.com/4alvit/fastapi-mqtt-gateway/commit/96072da84157ede3ac8bf1aaea40fdffd92c9ada) \u2014 Pin durable release workflow and verified publication guards (#82)\n\n\n\n\n\n---\n\n## 4alvit/google-home-voice-stats \u2014 v0.3.1\n\n[Published stable release](https://github.com/4alvit/google-home-voice-stats/releases/tag/v0.3.1)\n\n## Changes in 0.3.1\n\n### Added\n\n- Installable source release archives containing the Python application, integration templates, dependency locks and operator documentation.\n- Frozen beta, nightly and RC version plans, package metadata verification and exact-asset build receipts.\n\n### Upgrade\n\nInstall the source archive in a fresh environment using the documented locked dependencies. Compare and merge configuration templates; preserve installation-specific credentials and existing service configuration outside the checkout. This release does not deploy services, create cloud resources or configure physical speakers. Keep the previously accepted package and configuration for rollback.\n\n### Security\n\nThe release process preserves the existing required validation workflows and publishes only tracked inputs. Local secrets, environment files, deployment state and generated media are excluded by the repository's existing tracking policy. Release receipts verify artifact identity; physical voice behavior and installation-specific access must still be accepted separately.\n\n## Build provenance\n\nPromoted unchanged from [v0.3.1-rc.1](https://github.com/4alvit/google-home-voice-stats/releases/tag/v0.3.1-rc.1).\n\nSource: `a85689ab88e5194773054b76c055b2588df3a555`\n\nValidation: https://github.com/4alvit/google-home-voice-stats/actions/runs/38487630927\n\nPromotion: https://github.com/4alvit/google-home-voice-stats/actions/runs/38510735944\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.3.0\n\nReleased source: [a85689ab88e5](https://github.com/4alvit/google-home-voice-stats/commit/a85689ab88e5194773054b76c055b2588df3a555).\nPrevious stable source: [02c6fc87615b](https://github.com/4alvit/google-home-voice-stats/commit/02c6fc87615b99315afdbdcedf088e5f84af7401).\n\n[Full source history](https://github.com/4alvit/google-home-voice-stats/compare/02c6fc87615b99315afdbdcedf088e5f84af7401...a85689ab88e5194773054b76c055b2588df3a555). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 19 merged pull requests\n\n- [#11](https://github.com/4alvit/google-home-voice-stats/pull/11) \u2014 chore(ci): enable quiet CodeRabbit reviews\n- [#12](https://github.com/4alvit/google-home-voice-stats/pull/12) \u2014 test: cover Cast configuration and playback recovery boundaries\n- [#13](https://github.com/4alvit/google-home-voice-stats/pull/13) \u2014 ci: prepare optional runner reserve without enabling it\n- [#14](https://github.com/4alvit/google-home-voice-stats/pull/14) \u2014 docs: link the shared gateway and related voice projects\n- [#15](https://github.com/4alvit/google-home-voice-stats/pull/15) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#21](https://github.com/4alvit/google-home-voice-stats/pull/21) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#22](https://github.com/4alvit/google-home-voice-stats/pull/22) \u2014 fix: default local playback to loopback and add security checks\n- [#17](https://github.com/4alvit/google-home-voice-stats/pull/17) \u2014 Group coherent GitHub Actions updates\n- [#24](https://github.com/4alvit/google-home-voice-stats/pull/24) \u2014 ci: analyze GitHub Actions with CodeQL\n- [#25](https://github.com/4alvit/google-home-voice-stats/pull/25) \u2014 ci: minimize declared reusable workflow permissions\n- [#26](https://github.com/4alvit/google-home-voice-stats/pull/26) \u2014 build: lock Python dependencies and verify Cast image variants\n- [#27](https://github.com/4alvit/google-home-voice-stats/pull/27) \u2014 docs: use patched uv 0.12.18 for lock regeneration\n- [#23](https://github.com/4alvit/google-home-voice-stats/pull/23) \u2014 chore(deps): bump the github-actions group across 1 directory with 4 updates\n- [#29](https://github.com/4alvit/google-home-voice-stats/pull/29) \u2014 chore(deps): bump the github-actions group with 4 updates\n- [#28](https://github.com/4alvit/google-home-voice-stats/pull/28) \u2014 chore(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm\n- [#30](https://github.com/4alvit/google-home-voice-stats/pull/30) \u2014 chore(deps): bump the github-actions group with 10 updates\n- [#31](https://github.com/4alvit/google-home-voice-stats/pull/31) \u2014 Add KittenTTS Nano with primary and secondary speech servers\n- [#32](https://github.com/4alvit/google-home-voice-stats/pull/32) \u2014 Add installable source candidates and RC fuzz qualification\n- [#33](https://github.com/4alvit/google-home-voice-stats/pull/33) \u2014 Use durable release workflows and verified publication guards\n\n\n\n\n\nAll 19 commits\n\n- [c85dfa76c2b3](https://github.com/4alvit/google-home-voice-stats/commit/c85dfa76c2b302ac6e3147132f6925a24db1cb50) \u2014 chore(ci): enable quiet CodeRabbit reviews (#11)\n- [9ae129a68ab3](https://github.com/4alvit/google-home-voice-stats/commit/9ae129a68ab3dec5a54a6f820e9dba593fd92769) \u2014 test: cover Cast configuration and playback recovery boundaries\n- [cd96f2ebecb3](https://github.com/4alvit/google-home-voice-stats/commit/cd96f2ebecb3195ae0938d5f7d4aa14faad0aede) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#13)\n- [8c080412f2ef](https://github.com/4alvit/google-home-voice-stats/commit/8c080412f2eff69936abe844fb3f334cca657a24) \u2014 docs: link the shared gateway and related voice projects (#14)\n- [f06870423454](https://github.com/4alvit/google-home-voice-stats/commit/f0687042345408d8419ba32773abc3aecbef4371) \u2014 \\[StepSecurity\\] Apply security best practices (#15)\n- [544a5182f9ab](https://github.com/4alvit/google-home-voice-stats/commit/544a5182f9ab511a28d5396247e51ae83591e594) \u2014 ci: request CodeRabbit autofix after completed reviews (#21)\n- [ac49ce1a86ac](https://github.com/4alvit/google-home-voice-stats/commit/ac49ce1a86ac5b117111e22cfb6b4848f68e8d10) \u2014 fix: default local playback to loopback and add security checks (#22)\n- [8944bd9143fb](https://github.com/4alvit/google-home-voice-stats/commit/8944bd9143fbf9849a62eecf8a490156d15e8f6c) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#17)\n- [8bad162e161c](https://github.com/4alvit/google-home-voice-stats/commit/8bad162e161c6f43bf1dd91eefcf960991f579e9) \u2014 ci: analyze GitHub Actions with CodeQL (#24)\n- [c345db0eb4b7](https://github.com/4alvit/google-home-voice-stats/commit/c345db0eb4b71f0ed6a4dc9792566ccb0af830e9) \u2014 ci: minimize declared reusable workflow permissions (#25)\n- [29eed5def83d](https://github.com/4alvit/google-home-voice-stats/commit/29eed5def83d50d0b5a7c32ee72ae26a401a93b0) \u2014 build: hash-lock voice adapter dependencies and Cast images (#26)\n- [ace21016e4e6](https://github.com/4alvit/google-home-voice-stats/commit/ace21016e4e6e0e21cb3a170115bd8ad726bc90e) \u2014 docs: use patched uv for lock regeneration (#27)\n- [399ff1469da8](https://github.com/4alvit/google-home-voice-stats/commit/399ff1469da88e4fbff973077e67983c3bdabb08) \u2014 chore(deps): bump the github-actions group across 1 directory with 4 updates (#23)\n- [f4c93109b5b4](https://github.com/4alvit/google-home-voice-stats/commit/f4c93109b5b465b4ecbd44e9a471521b2dbcb51d) \u2014 chore(deps): bump the github-actions group with 4 updates (#29)\n- [4d43797d4264](https://github.com/4alvit/google-home-voice-stats/commit/4d43797d42643e4fddd9a524fec000a1a46ac69b) \u2014 chore(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm (#28)\n- [c02791658b5f](https://github.com/4alvit/google-home-voice-stats/commit/c02791658b5fa5380079680b880cf115a91c9095) \u2014 chore(deps): bump the github-actions group with 10 updates (#30)\n- [4cd7d0c4b8cc](https://github.com/4alvit/google-home-voice-stats/commit/4cd7d0c4b8cc9217c5932172acee67055e28bba6) \u2014 Add KittenTTS Nano with primary and secondary speech servers (#31)\n- [896a4e92e8dc](https://github.com/4alvit/google-home-voice-stats/commit/896a4e92e8dcb78aca6d3cc3fc5a20019d6a2dfd) \u2014 Add installable source candidates and RC fuzz qualification (#32)\n- [a85689ab88e5](https://github.com/4alvit/google-home-voice-stats/commit/a85689ab88e5194773054b76c055b2588df3a555) \u2014 Pin durable release workflow and verified publication guards (#33)\n\n\n\n\n\n---\n\n## 4alvit/iot-project-builder-profile \u2014 v0.1.3\n\n[Published stable release](https://github.com/4alvit/iot-project-builder-profile/releases/tag/v0.1.3)\n\n## Changes in 0.1.3\n\n### Fixed\n\nLoad built-in profile templates from memory so Markdown and HTML rendering works when the installed Python package is read-only. Existing templates in a supplied template directory or the package's template directory retain priority; missing templates use the built-in defaults without writing files there.\n\n### Upgrade\n\nNo profile data or output format migration is needed. Only the chosen output directory needs to be writable. Callers that supply a custom template directory should place their overrides there explicitly; the renderer no longer creates default template files in that directory.\n\n### Security\n\nRendering no longer requires write access to installed application files. HTML autoescaping remains enabled for both built-in and custom templates. This release fixes an installation compatibility defect; no remotely exploitable vulnerability is claimed.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.3-rc.2](https://github.com/4alvit/iot-project-builder-profile/releases/tag/v0.1.3-rc.2).\n\nSource: `5e6f7b73f8cd5446bdd2a82cfd8f59f1d986f788`\n\nValidation: https://github.com/4alvit/iot-project-builder-profile/actions/runs/38510741511\n\nPromotion: https://github.com/4alvit/iot-project-builder-profile/actions/runs/38511230662\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.2\n\nReleased source: [5e6f7b73f8cd](https://github.com/4alvit/iot-project-builder-profile/commit/5e6f7b73f8cd5446bdd2a82cfd8f59f1d986f788).\nPrevious stable source: [69f3091dfdf0](https://github.com/4alvit/iot-project-builder-profile/commit/69f3091dfdf0e814fc94c17cf717fdd7788e1497).\n\n[Full source history](https://github.com/4alvit/iot-project-builder-profile/compare/69f3091dfdf0e814fc94c17cf717fdd7788e1497...5e6f7b73f8cd5446bdd2a82cfd8f59f1d986f788). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 25 merged pull requests\n\n- [#59](https://github.com/4alvit/iot-project-builder-profile/pull/59) \u2014 security: harden code-scanning workflows and CI permissions\n- [#60](https://github.com/4alvit/iot-project-builder-profile/pull/60) \u2014 ci: prepare optional runner reserve without enabling it\n- [#61](https://github.com/4alvit/iot-project-builder-profile/pull/61) \u2014 docs: explain profile generation and current project discovery\n- [#62](https://github.com/4alvit/iot-project-builder-profile/pull/62) \u2014 perf(esphome): avoid duplicate YAML parsing during directory scans\n- [#63](https://github.com/4alvit/iot-project-builder-profile/pull/63) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#74](https://github.com/4alvit/iot-project-builder-profile/pull/74) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#75](https://github.com/4alvit/iot-project-builder-profile/pull/75) \u2014 feat: bind release notes to source and document security evidence\n- [#76](https://github.com/4alvit/iot-project-builder-profile/pull/76) \u2014 fix: render profiles from read-only installations\n- [#64](https://github.com/4alvit/iot-project-builder-profile/pull/64) \u2014 Group coherent GitHub Actions updates\n- [#68](https://github.com/4alvit/iot-project-builder-profile/pull/68) \u2014 Group tested Python dependency updates\n- [#78](https://github.com/4alvit/iot-project-builder-profile/pull/78) \u2014 ci: analyze GitHub Actions with CodeQL\n- [#79](https://github.com/4alvit/iot-project-builder-profile/pull/79) \u2014 fix: keep Bandit exclusions within directory boundaries\n- [#80](https://github.com/4alvit/iot-project-builder-profile/pull/80) \u2014 refactor: simplify custom component collection\n- [#81](https://github.com/4alvit/iot-project-builder-profile/pull/81) \u2014 build: update uv to patched 0.12.18\n- [#82](https://github.com/4alvit/iot-project-builder-profile/pull/82) \u2014 Document verified application and release TLS key policy\n- [#77](https://github.com/4alvit/iot-project-builder-profile/pull/77) \u2014 build(deps): bump the github-actions group across 1 directory with 7 updates\n- [#83](https://github.com/4alvit/iot-project-builder-profile/pull/83) \u2014 fix: enforce exact TLS key minima for the GitHub scanner\n- [#84](https://github.com/4alvit/iot-project-builder-profile/pull/84) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#85](https://github.com/4alvit/iot-project-builder-profile/pull/85) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#86](https://github.com/4alvit/iot-project-builder-profile/pull/86) \u2014 fix(release): require exact GitHub not-found diagnostics\n- [#87](https://github.com/4alvit/iot-project-builder-profile/pull/87) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#88](https://github.com/4alvit/iot-project-builder-profile/pull/88) \u2014 Add frozen candidate versions and RC fuzz qualification\n- [#89](https://github.com/4alvit/iot-project-builder-profile/pull/89) \u2014 Use durable release workflows and verified publication guards\n- [#90](https://github.com/4alvit/iot-project-builder-profile/pull/90) \u2014 build(deps): bump the python-dependencies group with 4 updates\n- [#91](https://github.com/4alvit/iot-project-builder-profile/pull/91) \u2014 build(deps): bump the github-actions group with 11 updates\n\n\n\n\n\nAll 34 commits\n\n- [fda5eaeadd2c](https://github.com/4alvit/iot-project-builder-profile/commit/fda5eaeadd2c78712a17b09ba75260e0af0d6d5c) \u2014 security: harden code-scanning workflows and CI permissions (#59)\n- [795bd911fa48](https://github.com/4alvit/iot-project-builder-profile/commit/795bd911fa48a8ea184a4fb666a7b7ed9718b1da) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#60)\n- [52e6a4885afe](https://github.com/4alvit/iot-project-builder-profile/commit/52e6a4885afe03846ac62c47e40101d440be4567) \u2014 docs: explain profile generation and current project discovery (#61)\n- [33dc7162e438](https://github.com/4alvit/iot-project-builder-profile/commit/33dc7162e43895f5ae8053ebb3a33a6d3cd96053) \u2014 perf(esphome): avoid duplicate YAML parsing during directory scans (#62)\n- [563a274d071e](https://github.com/4alvit/iot-project-builder-profile/commit/563a274d071ece9017613e4f4da8f756dfd114a4) \u2014 \\[StepSecurity\\] Apply security best practices (#63)\n- [b18f3325d592](https://github.com/4alvit/iot-project-builder-profile/commit/b18f3325d59263e55c761a54064e4406d1c40ef8) \u2014 ci: request CodeRabbit autofix after completed reviews (#74)\n- [54e2ec397c93](https://github.com/4alvit/iot-project-builder-profile/commit/54e2ec397c932b39b2fa44dfb68cc9e89a32ced0) \u2014 docs: document contribution, security and OpenSSF evidence\n- [d77c9463f140](https://github.com/4alvit/iot-project-builder-profile/commit/d77c9463f140faef9a64c21842ac95c3163efa1e) \u2014 security: record verified OpenSSF criteria and outstanding evidence\n- [14721fabf3f9](https://github.com/4alvit/iot-project-builder-profile/commit/14721fabf3f9d629faef49c473c6f0c702f30c0a) \u2014 feat: require source-bound release notes and complete security evidence\n- [913acbdba0b2](https://github.com/4alvit/iot-project-builder-profile/commit/913acbdba0b223dc2a57816e3d79dc54e010791d) \u2014 style: normalize release contract test imports and formatting\n- [9d4c0aea36ee](https://github.com/4alvit/iot-project-builder-profile/commit/9d4c0aea36eef1e46e3bb647d98b19ad41e0284f) \u2014 fix: validate release notes before publication state mutations\n- [0bb9be436e5e](https://github.com/4alvit/iot-project-builder-profile/commit/0bb9be436e5ebc20650079ff58068673e81dfa12) \u2014 test: reject unexpected release writes and verify note history\n- [b5d2e70e814b](https://github.com/4alvit/iot-project-builder-profile/commit/b5d2e70e814b88c30e9f8b18fd7228aa6cb3fc9f) \u2014 fix: accept CRLF notes without weakening source checks\n- [237697da8fc1](https://github.com/4alvit/iot-project-builder-profile/commit/237697da8fc182c91394e487babb17d585075a0b) \u2014 refactor: synchronize reviewed release metadata and workflow checks\n- [6023be7b834e](https://github.com/4alvit/iot-project-builder-profile/commit/6023be7b834e5da502b047b0ae620565dbef4d14) \u2014 Merge pull request #75 from 4alvit/codex/openssf-hardening-20261008\n- [d174d6206716](https://github.com/4alvit/iot-project-builder-profile/commit/d174d62067168f8d5982eaa26839b046abc5ddc0) \u2014 fix: render profiles from read-only installations\n- [394766a9ab24](https://github.com/4alvit/iot-project-builder-profile/commit/394766a9ab243e633293837a37e0c7760da840f2) \u2014 Merge pull request #76 from 4alvit/codex/readonly-profile-renderer-20261008\n- [4a7dfcc9989d](https://github.com/4alvit/iot-project-builder-profile/commit/4a7dfcc9989dee99c9ac928363161d9b296a2179) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#64)\n- [b78c9c578b83](https://github.com/4alvit/iot-project-builder-profile/commit/b78c9c578b83943b2b04519c360d4c31dd1e043b) \u2014 Group tested Python dependency updates (#68)\n- [a24f8e2004f8](https://github.com/4alvit/iot-project-builder-profile/commit/a24f8e2004f83737be50471463cd498b9699cfa4) \u2014 ci: analyze GitHub Actions with CodeQL (#78)\n- [1107d5f73107](https://github.com/4alvit/iot-project-builder-profile/commit/1107d5f731078dd4eb0e830c4970885ddda62d11) \u2014 fix: verify Bandit directory discovery boundaries (#79)\n- [2cd1e077f99d](https://github.com/4alvit/iot-project-builder-profile/commit/2cd1e077f99d1c315d8f8fe38af7ba3ba8454137) \u2014 refactor: separate ESPHome custom component collection (#80)\n- [0befa67771ef](https://github.com/4alvit/iot-project-builder-profile/commit/0befa67771efdd54d69473c8983ccc1af4ba5bec) \u2014 build: update uv to patched 0.12.18 (#81)\n- [b09c884840fa](https://github.com/4alvit/iot-project-builder-profile/commit/b09c884840fa43965b35f91a238f542bcf567c33) \u2014 Document verified application and release TLS key policy (#82)\n- [cc09856c21dd](https://github.com/4alvit/iot-project-builder-profile/commit/cc09856c21dd7ef3e22fa1ba4765d7d0e9468fdd) \u2014 build(deps): bump the github-actions group across 1 directory with 7 updates (#77)\n- [ff1aa6364450](https://github.com/4alvit/iot-project-builder-profile/commit/ff1aa6364450f6eb7ab5b94be13d459937f23537) \u2014 fix: enforce exact TLS key minima for the GitHub scanner (#83)\n- [731192d11e08](https://github.com/4alvit/iot-project-builder-profile/commit/731192d11e080d9fb4982bd01b4f40c84302d9fa) \u2014 build(deps): bump the github-actions group with 4 updates (#84)\n- [9c056a2943c1](https://github.com/4alvit/iot-project-builder-profile/commit/9c056a2943c1c50c2e9adeeaedd5dd9c3175587f) \u2014 build(deps): bump the github-actions group with 4 updates (#85)\n- [80c5301be021](https://github.com/4alvit/iot-project-builder-profile/commit/80c5301be02124f26076097b8c9a955658277df8) \u2014 fix(release): require exact GitHub not-found diagnostics (#86)\n- [d497e92a4be6](https://github.com/4alvit/iot-project-builder-profile/commit/d497e92a4be65cb6ffe91662b16a88ab7dee8d6a) \u2014 fix(release): use authoritative GitHub HTTP status (#87)\n- [b87548b28d78](https://github.com/4alvit/iot-project-builder-profile/commit/b87548b28d785b9852b14259774d3f33a83c4ee9) \u2014 Add frozen candidate versions and RC fuzz qualification (#88)\n- [31a6d1c58bd8](https://github.com/4alvit/iot-project-builder-profile/commit/31a6d1c58bd81d93af94da7ac7ec85d96d0f13f1) \u2014 Pin durable release workflow and verified publication guards (#89)\n- [bfc6b1a58b0b](https://github.com/4alvit/iot-project-builder-profile/commit/bfc6b1a58b0bd0b4869f78f390d01032762453e5) \u2014 build(deps): bump the python-dependencies group with 4 updates (#90)\n- [5e6f7b73f8cd](https://github.com/4alvit/iot-project-builder-profile/commit/5e6f7b73f8cd5446bdd2a82cfd8f59f1d986f788) \u2014 build(deps): bump the github-actions group with 11 updates (#91)\n\n\n\n\n\n---\n\n## 4alvit/mcp-venus-os \u2014 v0.2.13\n\n[Published stable release](https://github.com/4alvit/mcp-venus-os/releases/tag/v0.2.13)\n\n## Changes in 0.2.13\n\n### Maintenance\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n- Reject numeric hardware-contract and write values that exceed the finite hardware range.\n\n### Upgrade\n\nUse the documented update procedure and retain local configuration. Automated tests do not establish target-device acceptance.\n\n### Security\n\nRelease qualification now requires isolated fuzzing against the candidate source. Report findings through SECURITY.md.\n\n## Build provenance\n\nFinal build from accepted v0.2.13-rc.1; new verified package bytes.\n\nSource: `12babf20d1bab5e29aff80fea0ab2b19b096732b`\n\nValidation: https://github.com/4alvit/mcp-venus-os/actions/runs/38510604238\n\nSee `release-manifest.json` for package hashes and version input evidence.\n\n\n## Complete changes since v0.2.12\n\nReleased source: [12babf20d1ba](https://github.com/4alvit/mcp-venus-os/commit/12babf20d1bab5e29aff80fea0ab2b19b096732b).\nPrevious stable source: [a62cd87d68dc](https://github.com/4alvit/mcp-venus-os/commit/a62cd87d68dc15f3650989781178d7d0460d1760).\n\n[Full source history](https://github.com/4alvit/mcp-venus-os/compare/a62cd87d68dc15f3650989781178d7d0460d1760...12babf20d1bab5e29aff80fea0ab2b19b096732b). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 2 merged pull requests\n\n- [#104](https://github.com/4alvit/mcp-venus-os/pull/104) \u2014 Document verified signed stable release and installation\n- [#106](https://github.com/4alvit/mcp-venus-os/pull/106) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 2 commits\n\n- [ede49d2d8182](https://github.com/4alvit/mcp-venus-os/commit/ede49d2d8182948c2cc9e04e8ef23fc8acf25b03) \u2014 Document verified signed stable release and installation (#104)\n- [12babf20d1ba](https://github.com/4alvit/mcp-venus-os/commit/12babf20d1bab5e29aff80fea0ab2b19b096732b) \u2014 feat(release): qualify candidates with bounded Linux fuzzing (#106)\n\n\n\n\n\n---\n\n## 4alvit/mqtt-observability-opentelemetry \u2014 v0.2.5\n\n[Published stable release](https://github.com/4alvit/mqtt-observability-opentelemetry/releases/tag/v0.2.5)\n\n## Changes in 0.2.5\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Changed\n\nRequire exact verified-chain key minima for MQTT broker TLS before transmitting credentials or payloads.\n\nAllow bounded Prometheus WAL recovery before liveness checks begin and align\nthe rollout deadline with that startup budget. Retain the Grafana probe fixes\nfor shared CPU load. Both Python components now use the same 0.2.5 base version.\n\n### Upgrade\n\nReplace MQTT broker/client certificate chains containing RSA keys below 2048 bits or EC keys below 224 bits. TLS peers must pass both normal trust/hostname validation and exact key checks; plaintext local operation is unchanged.\n\nPreserve existing Prometheus storage, collector endpoints and credentials.\nThe Prometheus manifest allows up to thirty minutes for startup; readiness\ncontinues to gate traffic. Publishing a candidate does not apply manifests or\nchange the running recovery image.\n\n### Security\n\nThe recovery client now validates Kubernetes certificate key strength on the\nsame TLS connection before sending its bearer token. Release publication\nrequires an authoritative GitHub HTTP status before treating a tag as absent.\nCertificate trust and hostname checks remain required.\n\n## Build provenance\n\nPromoted unchanged from [v0.2.5-rc.3](https://github.com/4alvit/mqtt-observability-opentelemetry/releases/tag/v0.2.5-rc.3).\n\nSource: `083ccbe94c0805adbb865fd90f998806f40d0047`\n\nValidation: https://github.com/4alvit/mqtt-observability-opentelemetry/actions/runs/38511119355\n\nPromotion: https://github.com/4alvit/mqtt-observability-opentelemetry/actions/runs/38511693780\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.2.4\n\nReleased source: [083ccbe94c08](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/083ccbe94c0805adbb865fd90f998806f40d0047).\nPrevious stable source: [0c0ef89450ae](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/0c0ef89450aedd35fbf6f7d538ec839a32582a5b).\n\n[Full source history](https://github.com/4alvit/mqtt-observability-opentelemetry/compare/0c0ef89450aedd35fbf6f7d538ec839a32582a5b...083ccbe94c0805adbb865fd90f998806f40d0047). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 15 merged pull requests\n\n- [#152](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/152) \u2014 Fix Grafana liveness restarts under shared MP CPU load\n- [#153](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/153) \u2014 Update GitHub Actions and reusable workflows\n- [#154](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/154) \u2014 Update GitHub Actions and reusable workflows\n- [#155](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/155) \u2014 fix(recovery): verify Kubernetes TLS before sending bearer token\n- [#156](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/156) \u2014 chore(deps): update github actions and reusable workflows\n- [#158](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/158) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#157](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/157) \u2014 chore(deps): update github actions and reusable workflows\n- [#159](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/159) \u2014 Allow Prometheus WAL recovery before liveness restarts\n- [#160](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/160) \u2014 Prepare the 0.2.5 beta release cycle\n- [#161](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/161) \u2014 fix(ci): validate pinned Scorecard 5.6 results\n- [#162](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/162) \u2014 Update GitHub Actions and reusable workflows\n- [#163](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/163) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#164](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/164) \u2014 fix(release): resolve RC fuzz workflow from merged toolkit commit\n- [#165](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/165) \u2014 Use the durable validated release candidate runtime\n- [#166](https://github.com/4alvit/mqtt-observability-opentelemetry/pull/166) \u2014 Verify MQTT TLS keys before credentials and complete OpenSSF evidence\n\n\n\n\n\nAll 15 commits\n\n- [072766c7bf23](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/072766c7bf23588784bab3c2bf2cc0ec6251cacf) \u2014 Fix Grafana probe restarts under shared MP CPU load (#152)\n- [efa6d221ecf7](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/efa6d221ecf7a658cebc76e88ff130577bf6b65d) \u2014 Update GitHub Actions and reusable workflows (#153)\n- [e1210aef2f40](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/e1210aef2f40e90b7f1e7dbbee540cc4f53532a3) \u2014 Update GitHub Actions and reusable workflows (#154)\n- [7c2045764da2](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/7c2045764da245502143eae9a72a4247364908f3) \u2014 fix(recovery): verify Kubernetes TLS before sending bearer token (#155)\n- [928908ceeae0](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/928908ceeae05e0a16cec3fdb54362dc26f65984) \u2014 chore(deps): update github actions and reusable workflows (#156)\n- [7af011efbff8](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/7af011efbff836bde5dbdf95685ec02a8c556b9b) \u2014 fix(release): use authoritative GitHub HTTP status (#158)\n- [05312bec8d3b](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/05312bec8d3b9c2d39fe23c2c6ead2e9624d8331) \u2014 chore(deps): update github actions and reusable workflows (#157)\n- [eb67c002ad4e](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/eb67c002ad4efdb2dd632447b5da157366c708cc) \u2014 Allow Prometheus WAL recovery before liveness restarts (#159)\n- [f4837814281f](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/f4837814281fa4c0be4e50914a4a586dede353a8) \u2014 Prepare the 0.2.5 beta release cycle (#160)\n- [3e2e0ce1c06f](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/3e2e0ce1c06ffdf30b304d7ca07dad318bf9b71a) \u2014 fix(ci): validate pinned Scorecard 5.6 results (#161)\n- [5ac9be042549](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/5ac9be0425490959417757ff3d39bfaeaf86b915) \u2014 Update GitHub Actions and reusable workflows (#162)\n- [64d006613fef](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/64d006613fef9baab1174c2d0e079dc94872bcb2) \u2014 Require bounded RC fuzzing with documented targets and evidence (#163)\n- [8b476af5b232](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/8b476af5b23206a4b32f3f43993a06d8573e2621) \u2014 fix(release): pin fuzz workflow to reachable merged revision (#164)\n- [a414aa2bd8cf](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/a414aa2bd8cfbf6f1f6c0871ae814869ee0c5017) \u2014 fix(release): pin the verified durable candidate runtime (#165)\n- [083ccbe94c08](https://github.com/4alvit/mqtt-observability-opentelemetry/commit/083ccbe94c0805adbb865fd90f998806f40d0047) \u2014 Verify MQTT TLS keys before credentials and complete OpenSSF evidence (#166)\n\n\n\n\n\n---\n\n## 4alvit/solar-forecast-langgraph \u2014 v0.1.5\n\n[Published stable release](https://github.com/4alvit/solar-forecast-langgraph/releases/tag/v0.1.5)\n\n## Changes in 0.1.5\n\n### Fixed\n\nReject nonfinite panel configuration values, including overflowing JSON capacity\nexponents, before forecast calculations or JSON serialization. Existing finite\nconfiguration values and their round trips remain unchanged.\n\n### Changed\n\nStart the next beta cycle after the published 0.1.4 release. This candidate includes explicit HTTPX TLS configuration, platform certificate handling, CLI version reporting, and stricter artifact and publication verification added since 0.1.4.\n\n### Upgrade\n\nKeep using the published stable package unless testing this beta. Preserve site coordinates, broker credentials and local certificate settings; review the documented TLS policy when testing deployments. Beta publication does not update the stable PyPI package or deploy services.\n\n### Security\n\nTLS and release checks remain enabled. This version change opens a new immutable release series and does not itself claim to fix an additional vulnerability.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.5-rc.2](https://github.com/4alvit/solar-forecast-langgraph/releases/tag/v0.1.5-rc.2).\n\nSource: `06773f42282754d4e244cd4b766ad22ea8e0fe8a`\n\nValidation: https://github.com/4alvit/solar-forecast-langgraph/actions/runs/38489273050\n\nPromotion: https://github.com/4alvit/solar-forecast-langgraph/actions/runs/38510754034\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.4\n\nReleased source: [06773f422827](https://github.com/4alvit/solar-forecast-langgraph/commit/06773f42282754d4e244cd4b766ad22ea8e0fe8a).\nPrevious stable source: [fee15148e0d6](https://github.com/4alvit/solar-forecast-langgraph/commit/fee15148e0d6fcf7a4b4dbd1ece6a2ff895bc990).\n\n[Full source history](https://github.com/4alvit/solar-forecast-langgraph/compare/fee15148e0d6fcf7a4b4dbd1ece6a2ff895bc990...06773f42282754d4e244cd4b766ad22ea8e0fe8a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 32 merged pull requests\n\n- [#103](https://github.com/4alvit/solar-forecast-langgraph/pull/103) \u2014 chore(deps): update github actions and reusable workflows\n- [#105](https://github.com/4alvit/solar-forecast-langgraph/pull/105) \u2014 ci: prepare optional runner reserve without enabling it\n- [#106](https://github.com/4alvit/solar-forecast-langgraph/pull/106) \u2014 build(deps): bump langgraph-sdk from 0.4.2 to 0.4.4\n- [#107](https://github.com/4alvit/solar-forecast-langgraph/pull/107) \u2014 docs: use canonical control and monitoring links\n- [#104](https://github.com/4alvit/solar-forecast-langgraph/pull/104) \u2014 chore(deps): update github actions and reusable workflows\n- [#108](https://github.com/4alvit/solar-forecast-langgraph/pull/108) \u2014 chore(deps): update github actions and reusable workflows\n- [#109](https://github.com/4alvit/solar-forecast-langgraph/pull/109) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#110](https://github.com/4alvit/solar-forecast-langgraph/pull/110) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#111](https://github.com/4alvit/solar-forecast-langgraph/pull/111) \u2014 feat: bind release notes to source and document security evidence\n- [#112](https://github.com/4alvit/solar-forecast-langgraph/pull/112) \u2014 Refresh release contracts and OpenSSF evidence\n- [#113](https://github.com/4alvit/solar-forecast-langgraph/pull/113) \u2014 fix: preserve security scan and release-note boundaries\n- [#114](https://github.com/4alvit/solar-forecast-langgraph/pull/114) \u2014 build: update uv to patched 0.12.18\n- [#115](https://github.com/4alvit/solar-forecast-langgraph/pull/115) \u2014 Document verified application and release TLS key policy\n- [#116](https://github.com/4alvit/solar-forecast-langgraph/pull/116) \u2014 chore(deps): update github actions and reusable workflows\n- [#117](https://github.com/4alvit/solar-forecast-langgraph/pull/117) \u2014 fix: enforce exact TLS chain keys for forecast clients\n- [#118](https://github.com/4alvit/solar-forecast-langgraph/pull/118) \u2014 chore(deps): update github actions and reusable workflows\n- [#119](https://github.com/4alvit/solar-forecast-langgraph/pull/119) \u2014 chore(deps): update github actions and reusable workflows\n- [#120](https://github.com/4alvit/solar-forecast-langgraph/pull/120) \u2014 chore(deps): update github actions and reusable workflows\n- [#121](https://github.com/4alvit/solar-forecast-langgraph/pull/121) \u2014 docs: clarify distribution channels and forecast validation limits\n- [#123](https://github.com/4alvit/solar-forecast-langgraph/pull/123) \u2014 Restore verified PyPI publishing through existing OIDC trust\n- [#124](https://github.com/4alvit/solar-forecast-langgraph/pull/124) \u2014 Document verified PyPI 0.1.4 availability\n- [#125](https://github.com/4alvit/solar-forecast-langgraph/pull/125) \u2014 fix: make CLI metadata fast and release preflight fail closed\n- [#126](https://github.com/4alvit/solar-forecast-langgraph/pull/126) \u2014 fix(release): derive API status from response headers\n- [#122](https://github.com/4alvit/solar-forecast-langgraph/pull/122) \u2014 chore(deps): update github actions and reusable workflows\n- [#127](https://github.com/4alvit/solar-forecast-langgraph/pull/127) \u2014 Start the 0.1.5 beta release cycle\n- [#128](https://github.com/4alvit/solar-forecast-langgraph/pull/128) \u2014 fix(ci): validate pinned Scorecard 5.6 results\n- [#129](https://github.com/4alvit/solar-forecast-langgraph/pull/129) \u2014 chore(deps): update github actions and reusable workflows\n- [#131](https://github.com/4alvit/solar-forecast-langgraph/pull/131) \u2014 Add frozen candidate versions and RC fuzz qualification\n- [#130](https://github.com/4alvit/solar-forecast-langgraph/pull/130) \u2014 Verify optional LLM TLS and publish OpenSSF assurance evidence\n- [#132](https://github.com/4alvit/solar-forecast-langgraph/pull/132) \u2014 Document confidential conduct reporting contact\n- [#133](https://github.com/4alvit/solar-forecast-langgraph/pull/133) \u2014 Use durable release workflows and verified publication guards\n- [#134](https://github.com/4alvit/solar-forecast-langgraph/pull/134) \u2014 Reject nonfinite panel values found by the RC campaign\n\n\n\n\n\nAll 37 commits\n\n- [969b62f64abc](https://github.com/4alvit/solar-forecast-langgraph/commit/969b62f64abcb9025ea54b958f3d0193ee515710) \u2014 chore(deps): update github actions and reusable workflows (#103)\n- [b66eea07c679](https://github.com/4alvit/solar-forecast-langgraph/commit/b66eea07c6792e518048cae682fb9c820cefe914) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#105)\n- [c2e6faf4bef3](https://github.com/4alvit/solar-forecast-langgraph/commit/c2e6faf4bef32cc5115c3365e0c038ad72fa80e3) \u2014 build(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 (#106)\n- [efa34188b3f1](https://github.com/4alvit/solar-forecast-langgraph/commit/efa34188b3f175a4c1e7f7d53852b657dfac3535) \u2014 docs: use canonical control and monitoring links (#107)\n- [b541437b38a4](https://github.com/4alvit/solar-forecast-langgraph/commit/b541437b38a4adb365ee26ed46e6f9e48cbdab4c) \u2014 chore(deps): update github actions and reusable workflows (#104)\n- [911f26370c89](https://github.com/4alvit/solar-forecast-langgraph/commit/911f26370c893a4cc1ad0e9ba67ae69ae1460f1b) \u2014 chore(deps): update github actions and reusable workflows (#108)\n- [5aa2377d2614](https://github.com/4alvit/solar-forecast-langgraph/commit/5aa2377d261429d2c11fac113d79bc4d21212671) \u2014 \\[StepSecurity\\] Apply security best practices (#109)\n- [3ab48afa2028](https://github.com/4alvit/solar-forecast-langgraph/commit/3ab48afa2028094a0e960b661baedb9744977109) \u2014 ci: request CodeRabbit autofix after completed reviews (#110)\n- [aaab80caf6d3](https://github.com/4alvit/solar-forecast-langgraph/commit/aaab80caf6d3542903e7f9428310838e45e8b1b7) \u2014 docs: document contribution, security and OpenSSF evidence\n- [bdf1cb89d220](https://github.com/4alvit/solar-forecast-langgraph/commit/bdf1cb89d2208dd65dc36771872a24127b8a77a5) \u2014 security: record verified OpenSSF criteria and outstanding evidence\n- [884bf584dd92](https://github.com/4alvit/solar-forecast-langgraph/commit/884bf584dd927006e0c8d724bac8da328f63c085) \u2014 feat: require source-bound release notes and complete security evidence\n- [cbb708f3468b](https://github.com/4alvit/solar-forecast-langgraph/commit/cbb708f3468bf9b63b991834ea8ba1099a942208) \u2014 style: normalize release contract test imports and formatting\n- [04f08c4a3269](https://github.com/4alvit/solar-forecast-langgraph/commit/04f08c4a32697cb412267cdaba581e6da7db80be) \u2014 fix: validate release notes before publication state mutations\n- [5c8c5de21cc5](https://github.com/4alvit/solar-forecast-langgraph/commit/5c8c5de21cc56a21a63db7a80cdb1e0561c86ed5) \u2014 Merge pull request #111 from 4alvit/codex/openssf-hardening-20261008\n- [1d2eb0a68c2b](https://github.com/4alvit/solar-forecast-langgraph/commit/1d2eb0a68c2beddc0e305b0878d8d8c325154099) \u2014 Refresh release contracts and OpenSSF evidence (#112)\n- [317576a680db](https://github.com/4alvit/solar-forecast-langgraph/commit/317576a680db67fa164c6d610513029e7848f2a9) \u2014 fix: preserve security scan and release-note boundaries (#113)\n- [459990fce09b](https://github.com/4alvit/solar-forecast-langgraph/commit/459990fce09babd773b0c4b0f1e0a372699dd9ef) \u2014 build: update uv to patched 0.12.18 (#114)\n- [bd6d82c113a6](https://github.com/4alvit/solar-forecast-langgraph/commit/bd6d82c113a6b32c9123c157633bb361699b38c0) \u2014 Document verified application and release TLS key policy (#115)\n- [d4023dc5f922](https://github.com/4alvit/solar-forecast-langgraph/commit/d4023dc5f92275a4a62ea8f66fe90e76ba04e59f) \u2014 chore(deps): update github actions and reusable workflows (#116)\n- [dda5b63f525a](https://github.com/4alvit/solar-forecast-langgraph/commit/dda5b63f525af0997633a7b7b3a1d85fc47b20c9) \u2014 fix: enforce exact TLS chain keys for forecast clients (#117)\n- [2efc0db095eb](https://github.com/4alvit/solar-forecast-langgraph/commit/2efc0db095eb48f69defed64d2d75342a856b6a5) \u2014 chore(deps): update github actions and reusable workflows (#118)\n- [0dfd7878f4cb](https://github.com/4alvit/solar-forecast-langgraph/commit/0dfd7878f4cbb0f5f79ddf4a1083189422cb0b74) \u2014 chore(deps): update github actions and reusable workflows (#119)\n- [235f12faf85c](https://github.com/4alvit/solar-forecast-langgraph/commit/235f12faf85cb6c760976115faf0883baf500a2e) \u2014 chore(deps): update github actions and reusable workflows (#120)\n- [bb84d29d90ab](https://github.com/4alvit/solar-forecast-langgraph/commit/bb84d29d90ab6fe7ee68aad1f68b42d5e5be128e) \u2014 docs: clarify distribution channels and forecast validation limits (#121)\n- [6519f53d2a4f](https://github.com/4alvit/solar-forecast-langgraph/commit/6519f53d2a4f4db113254082b972e66b2d818de3) \u2014 fix: publish verified stable packages through existing PyPI OIDC trust (#123)\n- [32dd017ad957](https://github.com/4alvit/solar-forecast-langgraph/commit/32dd017ad9573ec90c683b19d12e5cf317074e8b) \u2014 docs: confirm verified PyPI 0.1.4 availability (#124)\n- [cfa5cb4dc0fa](https://github.com/4alvit/solar-forecast-langgraph/commit/cfa5cb4dc0fafec17f6850c002cb5be6bb41c133) \u2014 fix: make CLI metadata fast and release preflight fail closed (#125)\n- [b4c620117a3d](https://github.com/4alvit/solar-forecast-langgraph/commit/b4c620117a3d30d66281a7d35bb85b184e274849) \u2014 fix(release): derive API status from response headers (#126)\n- [091e72163963](https://github.com/4alvit/solar-forecast-langgraph/commit/091e721639639f1ce16205ed8836bfbe2d1fad02) \u2014 chore(deps): update github actions and reusable workflows (#122)\n- [1e568dcc5095](https://github.com/4alvit/solar-forecast-langgraph/commit/1e568dcc50958ba40d00bf99aca1561ae0580d85) \u2014 Start the 0.1.5 beta release cycle after stable 0.1.4 (#127)\n- [326f1c281d15](https://github.com/4alvit/solar-forecast-langgraph/commit/326f1c281d15c8844c8b44c9ca51a48294aad385) \u2014 fix(ci): validate pinned Scorecard 5.6 results (#128)\n- [65a2c87d3e98](https://github.com/4alvit/solar-forecast-langgraph/commit/65a2c87d3e98f3f4e2cf8c10a11ff8665c7145ea) \u2014 chore(deps): update github actions and reusable workflows (#129)\n- [6f6dc0af54c5](https://github.com/4alvit/solar-forecast-langgraph/commit/6f6dc0af54c5a2cb41cda9cf90a8347cb8474f6c) \u2014 Add frozen candidate versions and RC fuzz qualification (#131)\n- [e5393d7ac451](https://github.com/4alvit/solar-forecast-langgraph/commit/e5393d7ac451dfe825b65c69da9c8af4c9e874af) \u2014 Verify optional LLM TLS and publish OpenSSF assurance evidence (#130)\n- [0ba465cb9690](https://github.com/4alvit/solar-forecast-langgraph/commit/0ba465cb9690cdb4fcb6c407bd3002278e0d335e) \u2014 Document confidential conduct reporting contact (#132)\n- [8c610aeb0de3](https://github.com/4alvit/solar-forecast-langgraph/commit/8c610aeb0de365e1e454949a1f4f8ae20a1f3473) \u2014 Pin reachable release workflow and bounded attestation metadata (#133)\n- [06773f422827](https://github.com/4alvit/solar-forecast-langgraph/commit/06773f42282754d4e244cd4b766ad22ea8e0fe8a) \u2014 Reject nonfinite panel values before serialization and forecasting (#134)\n\n\n\n\n\n---\n\n## victron-venus/dbus-mqtt-battery \u2014 v2.7.8\n\n[Published stable release](https://github.com/victron-venus/dbus-mqtt-battery/releases/tag/v2.7.8)\n\n## Changes in 2.7.8\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n- Reject oversized numeric telemetry values with the normal validation error.\n\n### Release overview\n\nAggregates JBD BMS MQTT telemetry and publishes a Victron D-Bus battery service. The existing README documents configuration and external interfaces for this development line.\n\n### Maintenance\n\n- Record test and build dependencies in `uv.lock` for reproducible Python checks, preserving the existing locked runtime versions.\n- Separate command-line overrides and legacy MQTT decoding into focused helpers while preserving permission, freshness and atomic-frame handling.\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n- Require complete Bandit scans with no unresolved findings; reject malformed or incomplete scanner output. Document narrowly reviewed tooling and synthetic-fixture exceptions.\n- Reject incomplete aggregate battery snapshots with runtime checks that remain active under Python optimization.\n\n### Upgrade\n\nThese maintenance changes do not introduce a configuration or data migration. Retain local configuration and credentials when using the documented update procedure. Validate the candidate on an isolated system before production use; automated checks do not establish hardware acceptance.\n\n### Security\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nPromoted unchanged from [v2.7.8-rc.1](https://github.com/victron-venus/dbus-mqtt-battery/releases/tag/v2.7.8-rc.1).\n\nSource: `cab55d11d4b4a228b1312aaf44bcc3a9dc9637f9`\n\nValidation: https://github.com/victron-venus/dbus-mqtt-battery/actions/runs/38492819470\n\nPromotion: https://github.com/victron-venus/dbus-mqtt-battery/actions/runs/38510761240\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v2.7.7\n\nReleased source: [cab55d11d4b4](https://github.com/victron-venus/dbus-mqtt-battery/commit/cab55d11d4b4a228b1312aaf44bcc3a9dc9637f9).\nPrevious stable source: [7786883ae20a](https://github.com/victron-venus/dbus-mqtt-battery/commit/7786883ae20a4a8e4e0d1504c51f537b2e385ec2).\n\n[Full source history](https://github.com/victron-venus/dbus-mqtt-battery/compare/7786883ae20a4a8e4e0d1504c51f537b2e385ec2...cab55d11d4b4a228b1312aaf44bcc3a9dc9637f9). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 22 merged pull requests\n\n- [#94](https://github.com/victron-venus/dbus-mqtt-battery/pull/94) \u2014 security: harden code-scanning workflows and CI permissions\n- [#95](https://github.com/victron-venus/dbus-mqtt-battery/pull/95) \u2014 chore(deps): update github actions and reusable workflows\n- [#96](https://github.com/victron-venus/dbus-mqtt-battery/pull/96) \u2014 chore(deps): update github actions and reusable workflows\n- [#98](https://github.com/victron-venus/dbus-mqtt-battery/pull/98) \u2014 ci: prepare optional runner reserve without enabling it\n- [#99](https://github.com/victron-venus/dbus-mqtt-battery/pull/99) \u2014 Preserve BMS readiness through startup and brief telemetry gaps\n- [#100](https://github.com/victron-venus/dbus-mqtt-battery/pull/100) \u2014 docs: explain battery bridge companion contracts\n- [#97](https://github.com/victron-venus/dbus-mqtt-battery/pull/97) \u2014 chore(deps): update github actions and reusable workflows\n- [#101](https://github.com/victron-venus/dbus-mqtt-battery/pull/101) \u2014 chore(deps): update github actions and reusable workflows\n- [#102](https://github.com/victron-venus/dbus-mqtt-battery/pull/102) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#103](https://github.com/victron-venus/dbus-mqtt-battery/pull/103) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#104](https://github.com/victron-venus/dbus-mqtt-battery/pull/104) \u2014 Enforce complete security scans and source-bound release notes\n- [#105](https://github.com/victron-venus/dbus-mqtt-battery/pull/105) \u2014 Clarify MQTT configuration and sample routing\n- [#106](https://github.com/victron-venus/dbus-mqtt-battery/pull/106) \u2014 Use locked Python CI and simplify release validation\n- [#107](https://github.com/victron-venus/dbus-mqtt-battery/pull/107) \u2014 refactor: clarify telemetry paths and retain overlay attribution\n- [#108](https://github.com/victron-venus/dbus-mqtt-battery/pull/108) \u2014 chore(deps): update github actions and reusable workflows\n- [#109](https://github.com/victron-venus/dbus-mqtt-battery/pull/109) \u2014 chore(deps): update github actions and reusable workflows\n- [#110](https://github.com/victron-venus/dbus-mqtt-battery/pull/110) \u2014 chore(deps): update github actions and reusable workflows\n- [#111](https://github.com/victron-venus/dbus-mqtt-battery/pull/111) \u2014 chore(deps): update github actions and reusable workflows\n- [#113](https://github.com/victron-venus/dbus-mqtt-battery/pull/113) \u2014 fix: use authoritative HTTP statuses in release automation\n- [#112](https://github.com/victron-venus/dbus-mqtt-battery/pull/112) \u2014 chore(deps): update github actions and reusable workflows\n- [#114](https://github.com/victron-venus/dbus-mqtt-battery/pull/114) \u2014 chore(deps): update github actions and reusable workflows\n- [#115](https://github.com/victron-venus/dbus-mqtt-battery/pull/115) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 22 commits\n\n- [6d464a18d48e](https://github.com/victron-venus/dbus-mqtt-battery/commit/6d464a18d48e97db596f54b626094ab626834ceb) \u2014 security: harden code-scanning workflows and CI permissions (#94)\n- [b5583cfc8bc2](https://github.com/victron-venus/dbus-mqtt-battery/commit/b5583cfc8bc28ef101c61997124be1c94968ef5c) \u2014 chore(deps): update github actions and reusable workflows (#95)\n- [119d773f7076](https://github.com/victron-venus/dbus-mqtt-battery/commit/119d773f7076e1c0c6a853b8878578c36baf9f90) \u2014 chore(deps): update github actions and reusable workflows (#96)\n- [e3595ff8da49](https://github.com/victron-venus/dbus-mqtt-battery/commit/e3595ff8da4994ca3c75003990412d740903b2f3) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#98)\n- [79f9295f05be](https://github.com/victron-venus/dbus-mqtt-battery/commit/79f9295f05be9f58d35581aa8d6cb5a718e20118) \u2014 Preserve BMS readiness through startup and brief telemetry gaps (#99)\n- [b7c41e78a1af](https://github.com/victron-venus/dbus-mqtt-battery/commit/b7c41e78a1afb0c10f442aab0386baaf76e17a03) \u2014 docs: explain battery bridge companion contracts (#100)\n- [49b45a0099a4](https://github.com/victron-venus/dbus-mqtt-battery/commit/49b45a0099a478970a2ecc7c8c54ad547128a6e6) \u2014 chore(deps): update github actions and reusable workflows (#97)\n- [a076ddda8473](https://github.com/victron-venus/dbus-mqtt-battery/commit/a076ddda847330f6b26bfff198f7d11c1d6d89d0) \u2014 chore(deps): update github actions and reusable workflows (#101)\n- [c012cba8a1b6](https://github.com/victron-venus/dbus-mqtt-battery/commit/c012cba8a1b6487d7078aa60894f6e57abdf29f8) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#102)\n- [261e77e719c4](https://github.com/victron-venus/dbus-mqtt-battery/commit/261e77e719c4d4af1f460743949dd3c8b0e3ae2f) \u2014 ci: request CodeRabbit autofix after completed reviews (#103)\n- [ea1f03bc3a03](https://github.com/victron-venus/dbus-mqtt-battery/commit/ea1f03bc3a03718534ecd3483b9c7012c4d29eba) \u2014 Enforce complete security scans and source-bound release notes (#104)\n- [dea8a96d1e9b](https://github.com/victron-venus/dbus-mqtt-battery/commit/dea8a96d1e9bb2aed0d509ed7290d1807683b640) \u2014 refactor: clarify MQTT configuration and sample routing (#105)\n- [1748b1dfa8b7](https://github.com/victron-venus/dbus-mqtt-battery/commit/1748b1dfa8b793871658a4d8e1b8af9a8f9f7b22) \u2014 Use locked Python CI and simplify release validation (#106)\n- [a9d8042afa59](https://github.com/victron-venus/dbus-mqtt-battery/commit/a9d8042afa59d22b3102475bfed9866478f0b287) \u2014 refactor: clarify telemetry paths and retain overlay attribution (#107)\n- [0696cb42f14f](https://github.com/victron-venus/dbus-mqtt-battery/commit/0696cb42f14f550459a737e2d76a32b12faf8528) \u2014 chore(deps): update github actions and reusable workflows (#108)\n- [e7a359936bea](https://github.com/victron-venus/dbus-mqtt-battery/commit/e7a359936bea0fdf501c2ad5f5832620070fea82) \u2014 chore(deps): update github actions and reusable workflows (#109)\n- [f21fc5f2a7c1](https://github.com/victron-venus/dbus-mqtt-battery/commit/f21fc5f2a7c1fbf2843f75f98fbcbc254bdf02bb) \u2014 chore(deps): update github actions and reusable workflows (#110)\n- [2b728a781bac](https://github.com/victron-venus/dbus-mqtt-battery/commit/2b728a781bacf87454905b803a10648402af7531) \u2014 chore(deps): update github actions and reusable workflows (#111)\n- [05b11b6e81fc](https://github.com/victron-venus/dbus-mqtt-battery/commit/05b11b6e81fc85628f1f4d618b0b9704b501a642) \u2014 fix: use authoritative HTTP statuses in release automation (#113)\n- [d3c801b60e17](https://github.com/victron-venus/dbus-mqtt-battery/commit/d3c801b60e1700aff411b2fee7210551e56df652) \u2014 chore(deps): update github actions and reusable workflows (#112)\n- [d4fa48a459f3](https://github.com/victron-venus/dbus-mqtt-battery/commit/d4fa48a459f3bec396f78e7838a6f7716b39fcb3) \u2014 chore(deps): update github actions and reusable workflows (#114)\n- [cab55d11d4b4](https://github.com/victron-venus/dbus-mqtt-battery/commit/cab55d11d4b4a228b1312aaf44bcc3a9dc9637f9) \u2014 Require bounded RC fuzzing with documented targets and evidence (#115)\n\n\n\n\n\n---\n\n## victron-venus/dbus-tasmota-pv \u2014 v3.1.1\n\n[Published stable release](https://github.com/victron-venus/dbus-tasmota-pv/releases/tag/v3.1.1)\n\n## Changes in 3.1.1\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Maintenance\n\n- Clarify telemetry validation, persistent device identity and installer cleanup while preserving the existing 3.1 metering behavior.\n- Require complete security scans and publish release notes from the exact reviewed source commit.\n- Interpret GitHub response status from authoritative HTTP headers during release publication and keep package, runtime and SetupHelper versions synchronized.\n\n### Upgrade\n\nNo new configuration migration is introduced. Retain device-local settings and validate MQTT availability behavior before commissioning. Beta and RC artifacts use this new base version without reusing the existing 3.1.0 release tag; offline checks do not establish hardware acceptance.\n\n### Security\n\nPreserve broker authentication and access controls, and keep device credentials out of committed configuration and logs. The existing telemetry validation and offline invalidation remain in force; release verification requires complete security checks and source-bound notes.\n\n## Build provenance\n\nPromoted unchanged from [v3.1.1-rc.2](https://github.com/victron-venus/dbus-tasmota-pv/releases/tag/v3.1.1-rc.2).\n\nSource: `d6a7663bc548c887c21c8939205b04875604973a`\n\nValidation: https://github.com/victron-venus/dbus-tasmota-pv/actions/runs/38509084477\n\nPromotion: https://github.com/victron-venus/dbus-tasmota-pv/actions/runs/38510769475\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v3.1.0\n\nReleased source: [d6a7663bc548](https://github.com/victron-venus/dbus-tasmota-pv/commit/d6a7663bc548c887c21c8939205b04875604973a).\nPrevious stable source: [5c15ed6e2eee](https://github.com/victron-venus/dbus-tasmota-pv/commit/5c15ed6e2eeee4477058387eac98540e21f65dd6).\n\n[Full source history](https://github.com/victron-venus/dbus-tasmota-pv/compare/5c15ed6e2eeee4477058387eac98540e21f65dd6...d6a7663bc548c887c21c8939205b04875604973a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 23 merged pull requests\n\n- [#107](https://github.com/victron-venus/dbus-tasmota-pv/pull/107) \u2014 chore(deps): update github actions and reusable workflows\n- [#110](https://github.com/victron-venus/dbus-tasmota-pv/pull/110) \u2014 ci: prepare optional runner reserve without enabling it\n- [#109](https://github.com/victron-venus/dbus-tasmota-pv/pull/109) \u2014 chore(deps): update github actions and reusable workflows\n- [#111](https://github.com/victron-venus/dbus-tasmota-pv/pull/111) \u2014 chore(deps): update github actions and reusable workflows\n- [#112](https://github.com/victron-venus/dbus-tasmota-pv/pull/112) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#113](https://github.com/victron-venus/dbus-tasmota-pv/pull/113) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#114](https://github.com/victron-venus/dbus-tasmota-pv/pull/114) \u2014 Enforce complete security scans and source-bound release notes\n- [#115](https://github.com/victron-venus/dbus-tasmota-pv/pull/115) \u2014 Clarify telemetry and persistent identity validation\n- [#116](https://github.com/victron-venus/dbus-tasmota-pv/pull/116) \u2014 Use locked shared Python CI and clearer release validation tests\n- [#117](https://github.com/victron-venus/dbus-tasmota-pv/pull/117) \u2014 Clarify installer path and archive cleanup helpers\n- [#118](https://github.com/victron-venus/dbus-tasmota-pv/pull/118) \u2014 chore(deps): update github actions and reusable workflows\n- [#119](https://github.com/victron-venus/dbus-tasmota-pv/pull/119) \u2014 chore(deps): update github actions and reusable workflows\n- [#120](https://github.com/victron-venus/dbus-tasmota-pv/pull/120) \u2014 chore(deps): update github actions and reusable workflows\n- [#121](https://github.com/victron-venus/dbus-tasmota-pv/pull/121) \u2014 chore(deps): update github actions and reusable workflows\n- [#123](https://github.com/victron-venus/dbus-tasmota-pv/pull/123) \u2014 fix: use authoritative HTTP statuses in release automation\n- [#122](https://github.com/victron-venus/dbus-tasmota-pv/pull/122) \u2014 chore(deps): update github actions and reusable workflows\n- [#124](https://github.com/victron-venus/dbus-tasmota-pv/pull/124) \u2014 chore: prepare 3.1.1 release cycle\n- [#125](https://github.com/victron-venus/dbus-tasmota-pv/pull/125) \u2014 deps: update ruff requirement from &gt;=0.16.10 to &gt;=0.17.0\n- [#126](https://github.com/victron-venus/dbus-tasmota-pv/pull/126) \u2014 chore(deps): update github actions and reusable workflows\n- [#127](https://github.com/victron-venus/dbus-tasmota-pv/pull/127) \u2014 Document OpenSSF assessment and verified maintenance evidence\n- [#129](https://github.com/victron-venus/dbus-tasmota-pv/pull/129) \u2014 Provide direct private conduct reporting contact\n- [#128](https://github.com/victron-venus/dbus-tasmota-pv/pull/128) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#130](https://github.com/victron-venus/dbus-tasmota-pv/pull/130) \u2014 fix: instrument the production parser in RC fuzzing\n\n\n\n\n\nAll 23 commits\n\n- [a1dbf137b06b](https://github.com/victron-venus/dbus-tasmota-pv/commit/a1dbf137b06b4806376fe74e7afafe4b6e3a3ffe) \u2014 chore(deps): update github actions and reusable workflows (#107)\n- [5c55697b6741](https://github.com/victron-venus/dbus-tasmota-pv/commit/5c55697b6741fdc2433396754383485e46478ab4) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#110)\n- [e4a890628224](https://github.com/victron-venus/dbus-tasmota-pv/commit/e4a890628224d3b42dd78fefe9449d4cd8bd303a) \u2014 chore(deps): update github actions and reusable workflows (#109)\n- [301cb32d2160](https://github.com/victron-venus/dbus-tasmota-pv/commit/301cb32d21601ebab30cf8a3bf8f1f58b320f06f) \u2014 chore(deps): update github actions and reusable workflows (#111)\n- [c55718d6995e](https://github.com/victron-venus/dbus-tasmota-pv/commit/c55718d6995ed95adb134d45f2de91c186b2ec79) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#112)\n- [d096b8756a42](https://github.com/victron-venus/dbus-tasmota-pv/commit/d096b8756a42ac6b18d0a5b3991e8ec6e053dfee) \u2014 ci: request CodeRabbit autofix after completed reviews (#113)\n- [45af2841612f](https://github.com/victron-venus/dbus-tasmota-pv/commit/45af2841612f4e3ff2c13d9978962cdd39092bd8) \u2014 Enforce complete security scans and source-bound release notes (#114)\n- [94560518eadb](https://github.com/victron-venus/dbus-tasmota-pv/commit/94560518eadbc4cf4808dfd96cc6e69dae0a2230) \u2014 refactor: clarify Tasmota telemetry and persistent identity validation (#115)\n- [179db834df7c](https://github.com/victron-venus/dbus-tasmota-pv/commit/179db834df7c4317cb8fcad69fabfc1d71ca6f68) \u2014 Use locked shared Python CI and clearer release validation tests (#116)\n- [031de2961c68](https://github.com/victron-venus/dbus-tasmota-pv/commit/031de2961c6873966a80ad501f259d9c14a633b0) \u2014 Clarify installer path and archive cleanup helpers (#117)\n- [78a38c03762a](https://github.com/victron-venus/dbus-tasmota-pv/commit/78a38c03762ad635a50ec3298e12d776f962cc5b) \u2014 chore(deps): update github actions and reusable workflows (#118)\n- [41aee6a484dc](https://github.com/victron-venus/dbus-tasmota-pv/commit/41aee6a484dcd5acfa8e166b0234d9c7571c31b6) \u2014 chore(deps): update github actions and reusable workflows (#119)\n- [b905abb83e27](https://github.com/victron-venus/dbus-tasmota-pv/commit/b905abb83e27756b96f4e490b06770da411458c2) \u2014 chore(deps): update github actions and reusable workflows (#120)\n- [897a813b9ffb](https://github.com/victron-venus/dbus-tasmota-pv/commit/897a813b9ffb2ba50bf8c5725f7b16c098b29370) \u2014 chore(deps): update github actions and reusable workflows (#121)\n- [a82bc03e7793](https://github.com/victron-venus/dbus-tasmota-pv/commit/a82bc03e7793758ca5d879b6e258f823a31bcde5) \u2014 fix: use authoritative HTTP statuses in release automation (#123)\n- [7669a6558034](https://github.com/victron-venus/dbus-tasmota-pv/commit/7669a655803471b6e1383df0dc6ce3d950b436c3) \u2014 chore(deps): update github actions and reusable workflows (#122)\n- [325a2709c5fb](https://github.com/victron-venus/dbus-tasmota-pv/commit/325a2709c5fba0b495cb510d7f6ed044ede320b3) \u2014 chore: prepare 3.1.1 release cycle (#124)\n- [72429d40d329](https://github.com/victron-venus/dbus-tasmota-pv/commit/72429d40d329371d110c76f53ee782d3e7404aae) \u2014 deps: update ruff requirement from &gt;=0.16.10 to &gt;=0.17.0 (#125)\n- [fdc08c4683f7](https://github.com/victron-venus/dbus-tasmota-pv/commit/fdc08c4683f75b4795822ed2267d2ef8edf2aedb) \u2014 chore(deps): update github actions and reusable workflows (#126)\n- [0de827c8cd31](https://github.com/victron-venus/dbus-tasmota-pv/commit/0de827c8cd31a64a2a71f50e52e780ed3273d6c2) \u2014 Document OpenSSF assessment and verified maintenance evidence (#127)\n- [deee85feed17](https://github.com/victron-venus/dbus-tasmota-pv/commit/deee85feed17b31901caf0cac7ecb1838b5d30ea) \u2014 Provide direct private conduct reporting contact (#129)\n- [c15739701f7e](https://github.com/victron-venus/dbus-tasmota-pv/commit/c15739701f7eccc9788c160951dab91652bc85cd) \u2014 Require bounded RC fuzzing with documented targets and evidence (#128)\n- [d6a7663bc548](https://github.com/victron-venus/dbus-tasmota-pv/commit/d6a7663bc548c887c21c8939205b04875604973a) \u2014 fix: instrument the production parser in RC fuzzing (#130)\n\n\n\n\n\n---\n\n## victron-venus/inverter-control \u2014 v1.23.5\n\n[Published stable release](https://github.com/victron-venus/inverter-control/releases/tag/v1.23.5)\n\n## Changes in 1.23.5\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Added\n- Read-only [D-Bus diagnostic tools](https://github.com/victron-venus/inverter-control/blob/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b/docs/dbus-diagnostics.md) for saved timing\n  and writer provenance records, with bounded runtime inventory verification.\n- Separate Home Assistant token files and documented Loki netrc credential\n  rotation, so credentials can be replaced without editing ordinary configuration.\n- Signed source and optional ARMv7 dependency payloads, with fixed publisher,\n  workflow and source-commit verification. Historical unsigned releases remain\n  unsigned; follow [signature verification](https://github.com/victron-venus/inverter-control/blob/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b/docs/release-signatures.md).\n- Standard `make install` / `make uninstall` entry points and isolated `DESTDIR`\n  staging. Native CFFI builds check repeatability and preserve requested debug\n  information; a separate sanitizer job exercises native memory access.\n- Plain terminal output through `NO_COLOR` and explicit valve-state text.\n\n### Fixed\n- Reject non-object or oversized MQTT commands, non-finite control values,\n  malformed solar summaries and invalid Home Assistant entity paths before\n  changing accepted state or issuing an HTTP request.\n- Fail closed when an explicitly authenticated Loki configuration would use\n  the standard-library transport, which does not implement netrc authentication.\n- Require at least RSA 2048 for operator SSH deployment/restart, preserving\n  stronger configured minima and using fresh authenticated connections.\n- Enforce exact certificate-key minima on Home Assistant and both Loki HTTPS\n  transports before sending headers or logs, including RSA 2048 bits throughout\n  the verified chain. OpenSSL security level 2 alone accepted a 2047-bit root.\n- Publish unknown battery voltage, current, power and SoC as null when the\n  source is absent, disconnected, incomplete or stale, and display an em dash\n  in the console. Preserve real zero measurements.\n- Report battery source and availability separately from physical sample age.\n  Use upstream MQTT timestamps when available; a local D-Bus read is not a new\n  physical measurement. Clear stale chain SoC instead of retaining it forever.\n- Skip dump-load decisions when battery power is unavailable.\n- Ignore SmartShunt readings received while disconnected. Require fresh readings\n  after reconnecting, and reject in-flight poll or seed responses superseded by\n  a newer signal or source-owner change. Read values and availability coherently.\n- Preserve observed freshness/completeness requirements when a later native\n  metadata read fails, instead of treating the source as a legacy battery.\n- Recover the metrics listener after delayed network availability and preserve\n  queued Loki log delivery during temporary connection failures.\n- Keep console replay and Home Assistant cleanup failures from silently hiding\n  connection problems. Serialize creation and reset of the D-Bus singleton.\n- Bound asynchronous regression-test waits and restore scheduled Trivy reports.\n\n### Upgrade\n- `HA_TOKEN` remains supported. For new installations or credential migration,\n  provision a private `HA_TOKEN_FILE` outside the application directory; an\n  invalid selected file stops startup instead of reusing an inline token. See\n  [credential operations](https://github.com/victron-venus/inverter-control/blob/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b/docs/credentials.md) before a controlled restart.\n- Fractional manual setpoints, boolean numeric values and malformed forecast\n  metadata are now rejected. Valid integer setpoints, numeric interval strings\n  and partial daily MQTT forecasts retain their documented behavior.\n- Authenticated Loki should use Requests with an explicit private `NETRC` path\n  in the log-forwarder service environment. The optional urllib fallback rejects\n  that configuration; install the declared Requests dependency before migration.\n- Install the new `cryptography` dependency and verify its native wheel/runtime\n  compatibility before updating; the installer checks it before stopping the\n  controller. HTTPS fails closed without a verified-chain API or supported key.\n  Existing plaintext HTTP/MQTT behavior is unchanged. See\n  [the security design](https://github.com/victron-venus/inverter-control/blob/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b/docs/security-design.md) for CA/proxy and platform limits.\n- Existing site configuration remains in `local_config.py`; preserve this file\n  when updating. Unavailable battery values are now JSON null rather than zero,\n  so dashboard and automation consumers must distinguish missing data from a\n  measured zero. Use `--dry-run` for the first observation on a test installation.\n- The supported project interpreter is Python 3.12. Install dependencies from the\n  current manifests/lockfile; updating source without its dependencies does not\n  apply the dependency security fix below.\n- Candidate releases require target-device acceptance before production use.\n  Automated tests and mock integration do not establish physical safety.\n\n### Security\n- Raise the minimum `idna` version to 3.15 in both runtime dependency manifests,\n  excluding CVE-2026-45409 / GHSA-65pc-fj4g-8rjx. The lockfile resolves 3.18.\n  This is a dependency vulnerability, not an assigned vulnerability in the\n  Inverter Control application itself.\n- Use fixed D-Bus executable paths in the daemon to prevent command substitution\n  through an unexpected PATH. Validate complete Bandit results at every severity\n  and exercise bounded tariff imports with an Atheris fuzz target.\n- Publish human-readable release changes, upgrade guidance, and security notes\n  from the changelog at the exact package source commit. Missing notes block\n  publication for releases opting into this requirement.\n- Install private site configuration and tariff files with owner-only\n  permissions and reject unsafe symlink destinations before copying them.\n  Retire the legacy TLS helper instead of offering its obsolete key-generation\n  defaults.\n\n### Documentation\n- Document maintainer responsibilities, contribution rights, continuity gaps,\n  a one-year roadmap, accessibility limits and a security assurance case.\n- Refresh contributor, development, security, and interface guidance for the\n  OpenSSF Best Practices self-assessment. The documentation is evidence for the\n  assessment, not a claim of certification or independent hardware review.\n\n### Validation\n- Cover delayed and disconnected sources, null readings, stale local reads,\n  frozen upstream timestamps and recovery, valid zero SoC, and console output.\n- Original battery-telemetry change, before later candidate fixes: the Python\n  3.12 suite passed 1667 tests and 15 subtests with 92.24% coverage. This is the\n  historical validation scope, not the result for the latest source.\n- Review follow-up: deterministic disconnect/reconnect and interleaving regressions\n  cover native reads, CLI reads, synchronous fallback, and reconnect seeding.\n  This follow-up is included in the release; it has not been installed on Cerbo.\n\n## Build provenance\n\nPromoted unchanged from [v1.23.5-rc.2](https://github.com/victron-venus/inverter-control/releases/tag/v1.23.5-rc.2).\n\nSource: `d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b`\n\nValidation: https://github.com/victron-venus/inverter-control/actions/runs/38493652968\n\nPromotion: https://github.com/victron-venus/inverter-control/actions/runs/38510776007\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.23.4\n\nReleased source: [d9cadcd1221e](https://github.com/victron-venus/inverter-control/commit/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b).\nPrevious stable source: [7dcb7dd89c63](https://github.com/victron-venus/inverter-control/commit/7dcb7dd89c635dc4c8d6089474451547dbfccc00).\n\n[Full source history](https://github.com/victron-venus/inverter-control/compare/7dcb7dd89c635dc4c8d6089474451547dbfccc00...d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 31 merged pull requests\n\n- [#289](https://github.com/victron-venus/inverter-control/pull/289) \u2014 security: harden code-scanning workflows and CI permissions\n- [#291](https://github.com/victron-venus/inverter-control/pull/291) \u2014 fix(ci): preserve state checks while skipping metadata-only edits\n- [#292](https://github.com/victron-venus/inverter-control/pull/292) \u2014 chore(deps): update github actions and reusable workflows\n- [#294](https://github.com/victron-venus/inverter-control/pull/294) \u2014 ci: prepare optional runner reserve without enabling it\n- [#295](https://github.com/victron-venus/inverter-control/pull/295) \u2014 Preserve unknown and stale battery telemetry\n- [#296](https://github.com/victron-venus/inverter-control/pull/296) \u2014 docs: connect controller guidance to current telemetry projects\n- [#293](https://github.com/victron-venus/inverter-control/pull/293) \u2014 chore(deps): update github actions and reusable workflows\n- [#297](https://github.com/victron-venus/inverter-control/pull/297) \u2014 chore(deps): update github actions and reusable workflows\n- [#299](https://github.com/victron-venus/inverter-control/pull/299) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#298](https://github.com/victron-venus/inverter-control/pull/298) \u2014 Recover metrics after network startup and preserve Loki delivery\n- [#300](https://github.com/victron-venus/inverter-control/pull/300) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#301](https://github.com/victron-venus/inverter-control/pull/301) \u2014 fix: harden runtime and enforce complete security scans\n- [#302](https://github.com/victron-venus/inverter-control/pull/302) \u2014 fix: resolve quality findings and restore Trivy reporting\n- [#303](https://github.com/victron-venus/inverter-control/pull/303) \u2014 Harden installation and document OpenSSF Passing evidence\n- [#304](https://github.com/victron-venus/inverter-control/pull/304) \u2014 docs: record awarded OpenSSF Passing badge\n- [#306](https://github.com/victron-venus/inverter-control/pull/306) \u2014 chore(deps): update github actions and reusable workflows\n- [#307](https://github.com/victron-venus/inverter-control/pull/307) \u2014 Enforce TLS and SSH key strength and build offline ARMv7 dependencies\n- [#305](https://github.com/victron-venus/inverter-control/pull/305) \u2014 Harden security gates and release validation; simplify control logic\n- [#308](https://github.com/victron-venus/inverter-control/pull/308) \u2014 Harden releases and runtime boundaries; document OpenSSF Silver evidence\n- [#309](https://github.com/victron-venus/inverter-control/pull/309) \u2014 Record merged validation and verified signed preview evidence\n- [#310](https://github.com/victron-venus/inverter-control/pull/310) \u2014 test: retain log cursors across post-scan rotation races\n- [#311](https://github.com/victron-venus/inverter-control/pull/311) \u2014 chore(deps): update github actions and reusable workflows\n- [#312](https://github.com/victron-venus/inverter-control/pull/312) \u2014 Return the power limits applied by each request\n- [#313](https://github.com/victron-venus/inverter-control/pull/313) \u2014 chore(deps): update github actions and reusable workflows\n- [#314](https://github.com/victron-venus/inverter-control/pull/314) \u2014 Add D-Bus timing and provenance diagnostic tools\n- [#315](https://github.com/victron-venus/inverter-control/pull/315) \u2014 chore(deps): update github actions and reusable workflows\n- [#316](https://github.com/victron-venus/inverter-control/pull/316) \u2014 docs: define command ownership and writer handoff boundaries\n- [#318](https://github.com/victron-venus/inverter-control/pull/318) \u2014 fix: use authoritative HTTP statuses in release automation\n- [#317](https://github.com/victron-venus/inverter-control/pull/317) \u2014 chore(deps): update github actions and reusable workflows\n- [#319](https://github.com/victron-venus/inverter-control/pull/319) \u2014 chore(deps): update github actions and reusable workflows\n- [#320](https://github.com/victron-venus/inverter-control/pull/320) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 35 commits\n\n- [9f1fa4f5f846](https://github.com/victron-venus/inverter-control/commit/9f1fa4f5f846502a0625dd4b08ee87a6956649d4) \u2014 security: harden code-scanning workflows and CI permissions (#289)\n- [c49407b0813b](https://github.com/victron-venus/inverter-control/commit/c49407b0813b770c320449a24bf070bc639918f0) \u2014 fix(ci): preserve state checks while skipping metadata-only edits (#291)\n- [def4160f6b93](https://github.com/victron-venus/inverter-control/commit/def4160f6b93b830bf6c2a73f102ba6cb974d251) \u2014 chore(deps): update github actions and reusable workflows (#292)\n- [4d761202c7c6](https://github.com/victron-venus/inverter-control/commit/4d761202c7c64b1a4da2740eed12445d371718e1) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#294)\n- [06332e993756](https://github.com/victron-venus/inverter-control/commit/06332e9937563708bd5590bc86b9da21c8ea6e2d) \u2014 fix: preserve unknown battery telemetry and reject stale readings\n- [e17e4999c673](https://github.com/victron-venus/inverter-control/commit/e17e4999c6733af9e3b0aaab4e3cbb8d38f3091f) \u2014 fix: reject superseded SmartShunt observations\n- [2cd0b5ecfbd3](https://github.com/victron-venus/inverter-control/commit/2cd0b5ecfbd35dba00306d4a9bc94bd74e8b5c9f) \u2014 fix: keep unavailable shunt reads unmeasured\n- [f3ff76a04817](https://github.com/victron-venus/inverter-control/commit/f3ff76a04817a813eeb29f8897ac70d94ba4375a) \u2014 fix: retain observed battery freshness contracts\n- [9a72bf81be3a](https://github.com/victron-venus/inverter-control/commit/9a72bf81be3a84c753797c4425419912db8d23d0) \u2014 Merge pull request #295: Preserve unknown and stale battery telemetry\n- [7dead878890a](https://github.com/victron-venus/inverter-control/commit/7dead878890ae441e3ae7628bcdfd740bffad41a) \u2014 docs: connect controller guidance to current telemetry projects (#296)\n- [2ebfd63d12fe](https://github.com/victron-venus/inverter-control/commit/2ebfd63d12fe4f9f7846457cd557c35d62912817) \u2014 chore(deps): update github actions and reusable workflows (#293)\n- [2fe47d787f4d](https://github.com/victron-venus/inverter-control/commit/2fe47d787f4d3eeed86e6c6e76ab3e6bcad29cc8) \u2014 chore(deps): update github actions and reusable workflows (#297)\n- [018f03e56fcb](https://github.com/victron-venus/inverter-control/commit/018f03e56fcb97fb0f0d496eb434b00d61c8936d) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#299)\n- [116c46daf6e2](https://github.com/victron-venus/inverter-control/commit/116c46daf6e274da0447091ecaf407ee4dd846a9) \u2014 Recover metrics after network startup and preserve Loki delivery (#298)\n- [a72719690bf3](https://github.com/victron-venus/inverter-control/commit/a72719690bf3d695cf976574277626097ac82cdf) \u2014 ci: request CodeRabbit autofix after completed reviews (#300)\n- [5666d402aa22](https://github.com/victron-venus/inverter-control/commit/5666d402aa22ffc0798d5d8ed30fc1a249045e4a) \u2014 fix: harden runtime and enforce complete security scans (#301)\n- [c651e9f3e711](https://github.com/victron-venus/inverter-control/commit/c651e9f3e7114f050fbfa641b16c8c885032186e) \u2014 fix: resolve quality findings and restore Trivy reporting (#302)\n- [17143487b07b](https://github.com/victron-venus/inverter-control/commit/17143487b07bcbdd8f77f0878ed9b88373e2dd8d) \u2014 Harden installation and document OpenSSF Passing evidence (#303)\n- [e62de6b0e4b8](https://github.com/victron-venus/inverter-control/commit/e62de6b0e4b8290828f6106193cb1ac62df3c3ad) \u2014 docs: record awarded OpenSSF Passing badge (#304)\n- [9135c90c0993](https://github.com/victron-venus/inverter-control/commit/9135c90c099322b1b4f291d8bd50717e3b7aa307) \u2014 chore(deps): update github actions and reusable workflows (#306)\n- [120e3b5ae977](https://github.com/victron-venus/inverter-control/commit/120e3b5ae977975aeb9d080b4216d62f793934fa) \u2014 Enforce TLS and SSH key strength and build offline ARMv7 dependencies (#307)\n- [356a42490f7c](https://github.com/victron-venus/inverter-control/commit/356a42490f7c71dcbfde26df685d815abc6ee0e7) \u2014 Harden security gates and release validation; simplify control logic (#305)\n- [f2ea6e76d301](https://github.com/victron-venus/inverter-control/commit/f2ea6e76d301f9e05f3992c5378968cc0b440c24) \u2014 Harden releases and runtime boundaries; document OpenSSF Silver evidence (#308)\n- [9eda44ee1f6c](https://github.com/victron-venus/inverter-control/commit/9eda44ee1f6c36a297a2a4fe6aebd97666db3034) \u2014 Record merged validation and verified signed preview evidence (#309)\n- [e36c39c6d5c2](https://github.com/victron-venus/inverter-control/commit/e36c39c6d5c27c19b6e11a439135ececba4bbedb) \u2014 test: retain log cursors across post-scan rotation races (#310)\n- [efa12cac47dd](https://github.com/victron-venus/inverter-control/commit/efa12cac47dd3736624416b3ff5a254078f2e332) \u2014 chore(deps): update github actions and reusable workflows (#311)\n- [2e3cf47fb414](https://github.com/victron-venus/inverter-control/commit/2e3cf47fb4149cf0f75a130fe034f4a83cde4e56) \u2014 fix: return the power limits applied by each request (#312)\n- [595c2b2d3eb8](https://github.com/victron-venus/inverter-control/commit/595c2b2d3eb88c4094fc86e403ef8d90d90681c6) \u2014 chore(deps): update github actions and reusable workflows (#313)\n- [965eb79d1d83](https://github.com/victron-venus/inverter-control/commit/965eb79d1d83bafda9a32a76a2955caf6265ecb0) \u2014 Add D-Bus timing and provenance diagnostic tools (#314)\n- [b8c82f5da6be](https://github.com/victron-venus/inverter-control/commit/b8c82f5da6be2079f5df6c94f48b64094f12c629) \u2014 chore(deps): update github actions and reusable workflows (#315)\n- [2c78a8ac8300](https://github.com/victron-venus/inverter-control/commit/2c78a8ac83003313346bb4fbc9e134e086cfa682) \u2014 docs: define command ownership and writer handoff boundaries (#316)\n- [5a29e00e152a](https://github.com/victron-venus/inverter-control/commit/5a29e00e152a3e425656480c8939eb6cff80f43c) \u2014 fix: use authoritative HTTP statuses in release automation (#318)\n- [0b642ec26bf2](https://github.com/victron-venus/inverter-control/commit/0b642ec26bf20926e6d7f4cc146a227f4cd2d36e) \u2014 chore(deps): update github actions and reusable workflows (#317)\n- [befc1be642a3](https://github.com/victron-venus/inverter-control/commit/befc1be642a3cc48483121521b547f4b6bc20310) \u2014 chore(deps): update github actions and reusable workflows (#319)\n- [d9cadcd1221e](https://github.com/victron-venus/inverter-control/commit/d9cadcd1221e99af646e08fbe2de51dc1bd7ea3b) \u2014 Require bounded RC fuzzing with documented targets and evidence (#320)\n\n\n\n\n\n---\n\n## victron-venus/inverter-dashboard \u2014 v1.8.27\n\n[Published stable release](https://github.com/victron-venus/inverter-dashboard/releases/tag/v1.8.27)\n\n## Changes in 1.8.27\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Release overview\n\nProvides a Python web dashboard for Victron telemetry and configured controls. The existing README documents configuration and external interfaces for this development line.\n\n### Maintenance\n\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n- Require complete Bandit scans with no unresolved findings; reject malformed or incomplete scanner output. Document narrowly reviewed tooling and synthetic-fixture exceptions.\n- Reject updater pins containing Git options, refspecs or malformed references before invoking Git.\n\n### Upgrade\n\nExisting configuration and stored settings remain usable. UPDATE_PIN must identify one branch, tag or commit; Git options and refspec syntax are rejected. Self-update remains opt-in. Back up settings and follow the documented container or binary replacement procedure.\n\nHome Assistant, gateway and update-metadata HTTPS connections now reject weak\ncertificate keys throughout their verified chains, including a 2047-bit RSA\ntrust anchor. Reissue affected private chains with RSA keys of at least 2048 bits\nor supported stronger keys. Certificate and hostname verification remain required;\nsee [the TLS client policy](https://github.com/victron-venus/inverter-dashboard/blob/139675e22edafee5366358850322364daafc240b/docs/tls-policy.md) for proxy and platform details.\n\nThe same minima now apply to MQTT TLS, Web Push, HTTPS health probes and the\nbuilt-in HTTPS server identity. Reissue weak server certificate chains before\nstartup; combined or separate PEM certificate/key files remain supported.\n\n### Security\n\nUse uv 0.12.18 for release builds, including Windows package installation, to\naddress [GHSA-2cv4-cqwr-gwf7](https://github.com/advisories/GHSA-2cv4-cqwr-gwf7).\nApplication dependencies and configuration are unchanged.\n\nCheck exact certificate-key sizes on the established TLS connection before\nsending HTTP headers or bodies. This covers the HTTPX clients above and their\nHTTPS proxies; it preserves the configured CA selection and proxy exclusions.\nIntel macOS uses Apple's native certificate parser without adding a cryptography\npackage dependency. The change does not establish whole-project OpenSSF compliance.\n\nLoad the built-in server's certificate and private key from a checked snapshot\nto prevent file replacement between validation and OpenSSL loading. Preserve\nWeb Push provider/DNS restrictions and MQTT CA selection while checking their\nactual TLS connections before credentials or payloads are sent.\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nPromoted unchanged from [v1.8.27-rc.2](https://github.com/victron-venus/inverter-dashboard/releases/tag/v1.8.27-rc.2).\n\nSource: `139675e22edafee5366358850322364daafc240b`\n\nValidation: https://github.com/victron-venus/inverter-dashboard/actions/runs/38510784715\n\nPromotion: https://github.com/victron-venus/inverter-dashboard/actions/runs/38511997698\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.8.25\n\nReleased source: [139675e22eda](https://github.com/victron-venus/inverter-dashboard/commit/139675e22edafee5366358850322364daafc240b).\nPrevious stable source: [d0902e8a2539](https://github.com/victron-venus/inverter-dashboard/commit/d0902e8a2539a30cb940832820daa45633bae573).\n\n[Full source history](https://github.com/victron-venus/inverter-dashboard/compare/d0902e8a2539a30cb940832820daa45633bae573...139675e22edafee5366358850322364daafc240b). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 48 merged pull requests\n\n- [#242](https://github.com/victron-venus/inverter-dashboard/pull/242) \u2014 ci: publish Python coverage through shared Codecov workflow\n- [#244](https://github.com/victron-venus/inverter-dashboard/pull/244) \u2014 fix: preserve Victron notification times for 1.8.26\n- [#245](https://github.com/victron-venus/inverter-dashboard/pull/245) \u2014 fix: align native alerts, ESS and Home with Desktop\n- [#246](https://github.com/victron-venus/inverter-dashboard/pull/246) \u2014 fix(ui): refresh ESS age on live telemetry\n- [#247](https://github.com/victron-venus/inverter-dashboard/pull/247) \u2014 ci: prepare optional runner reserve without enabling it\n- [#248](https://github.com/victron-venus/inverter-dashboard/pull/248) \u2014 feat(notifications): add persistent server-side Web Push\n- [#249](https://github.com/victron-venus/inverter-dashboard/pull/249) \u2014 fix: preserve Intel macOS packages with optional Web Push\n- [#250](https://github.com/victron-venus/inverter-dashboard/pull/250) \u2014 fix: sign Web Push with the configured HTTPS contact URI\n- [#251](https://github.com/victron-venus/inverter-dashboard/pull/251) \u2014 fix: match Active Loads colors to Desktop\n- [#252](https://github.com/victron-venus/inverter-dashboard/pull/252) \u2014 fix: complete Desktop controller and data safety parity\n- [#253](https://github.com/victron-venus/inverter-dashboard/pull/253) \u2014 docs: document current dashboard companion projects\n- [#243](https://github.com/victron-venus/inverter-dashboard/pull/243) \u2014 chore(deps): update github actions and reusable workflows\n- [#254](https://github.com/victron-venus/inverter-dashboard/pull/254) \u2014 fix: preserve native vehicle charging power in public state\n- [#255](https://github.com/victron-venus/inverter-dashboard/pull/255) \u2014 chore(deps): update github actions and reusable workflows\n- [#256](https://github.com/victron-venus/inverter-dashboard/pull/256) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#257](https://github.com/victron-venus/inverter-dashboard/pull/257) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#258](https://github.com/victron-venus/inverter-dashboard/pull/258) \u2014 Enforce complete security scans and source-bound release notes\n- [#259](https://github.com/victron-venus/inverter-dashboard/pull/259) \u2014 Use patched uv for release packaging\n- [#260](https://github.com/victron-venus/inverter-dashboard/pull/260) \u2014 Simplify nightly identity validation while preserving ASCII rules\n- [#261](https://github.com/victron-venus/inverter-dashboard/pull/261) \u2014 Simplify snapshot parsing with precision and validation regressions\n- [#262](https://github.com/victron-venus/inverter-dashboard/pull/262) \u2014 Simplify native invalidation rules with field and ordering regressions\n- [#263](https://github.com/victron-venus/inverter-dashboard/pull/263) \u2014 Separate notification field and alarm snapshot updates\n- [#264](https://github.com/victron-venus/inverter-dashboard/pull/264) \u2014 Separate battery measurement and shunt projection\n- [#265](https://github.com/victron-venus/inverter-dashboard/pull/265) \u2014 Separate solar device measurements from aggregate projection\n- [#266](https://github.com/victron-venus/inverter-dashboard/pull/266) \u2014 Document existing dashboard error responses in OpenAPI\n- [#267](https://github.com/victron-venus/inverter-dashboard/pull/267) \u2014 refactor: clarify Home Assistant display assembly\n- [#268](https://github.com/victron-venus/inverter-dashboard/pull/268) \u2014 Simplify per-phase AC telemetry projection\n- [#269](https://github.com/victron-venus/inverter-dashboard/pull/269) \u2014 refactor: clarify Home Assistant action validation\n- [#270](https://github.com/victron-venus/inverter-dashboard/pull/270) \u2014 fix: always join MQTT keepalive during cleanup\n- [#271](https://github.com/victron-venus/inverter-dashboard/pull/271) \u2014 refactor: separate owner-bound MQTT session stages\n- [#272](https://github.com/victron-venus/inverter-dashboard/pull/272) \u2014 refactor: separate accepted Cerbo message stages\n- [#273](https://github.com/victron-venus/inverter-dashboard/pull/273) \u2014 fix(ci): preserve the Trivy baseline across workflow callers\n- [#274](https://github.com/victron-venus/inverter-dashboard/pull/274) \u2014 Refactor WebSocket routing and private cleanup stages\n- [#275](https://github.com/victron-venus/inverter-dashboard/pull/275) \u2014 chore(deps): update github actions and reusable workflows\n- [#276](https://github.com/victron-venus/inverter-dashboard/pull/276) \u2014 Enforce exact certificate key sizes before dashboard HTTPS requests\n- [#277](https://github.com/victron-venus/inverter-dashboard/pull/277) \u2014 Verify TLS keys for MQTT, Web Push and HTTPS server identities\n- [#278](https://github.com/victron-venus/inverter-dashboard/pull/278) \u2014 Simplify verified TLS certificate normalization\n- [#279](https://github.com/victron-venus/inverter-dashboard/pull/279) \u2014 Update GitHub Actions and reusable workflows\n- [#280](https://github.com/victron-venus/inverter-dashboard/pull/280) \u2014 Update GitHub Actions and reusable workflows\n- [#282](https://github.com/victron-venus/inverter-dashboard/pull/282) \u2014 Update GitHub Actions and reusable workflows\n- [#281](https://github.com/victron-venus/inverter-dashboard/pull/281) \u2014 Document optional bindings for migrated outlets\n- [#284](https://github.com/victron-venus/inverter-dashboard/pull/284) \u2014 fix: use HTTP headers for release API status\n- [#283](https://github.com/victron-venus/inverter-dashboard/pull/283) \u2014 Update GitHub Actions and reusable workflows\n- [#285](https://github.com/victron-venus/inverter-dashboard/pull/285) \u2014 Update GitHub Actions and reusable workflows\n- [#286](https://github.com/victron-venus/inverter-dashboard/pull/286) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#287](https://github.com/victron-venus/inverter-dashboard/pull/287) \u2014 deps: bump cryptography from 50.0.1 to 50.0.2\n- [#288](https://github.com/victron-venus/inverter-dashboard/pull/288) \u2014 deps: bump fastapi from 0.142.2 to 0.143.0\n- [#289](https://github.com/victron-venus/inverter-dashboard/pull/289) \u2014 deps: bump websockets from 17.1 to 17.2\n\n\n\n\n\nAll 54 commits\n\n- [ec1618f0dcbd](https://github.com/victron-venus/inverter-dashboard/commit/ec1618f0dcbda95b759ffae51c94cab28837b82d) \u2014 ci: publish Python coverage through shared Codecov workflow (#242)\n- [7d1df1e6844e](https://github.com/victron-venus/inverter-dashboard/commit/7d1df1e6844e3a36c7954bc80590bee796730d45) \u2014 fix: preserve Victron notification times for 1.8.26 (#244)\n- [23b80a8fe599](https://github.com/victron-venus/inverter-dashboard/commit/23b80a8fe5993b6f0e7d8e85e4b618b9578c6e3e) \u2014 fix: align native alerts, ESS and Home with Desktop (#245)\n- [e8bea589503d](https://github.com/victron-venus/inverter-dashboard/commit/e8bea589503dc696c3d89ec1f0c924928efbd001) \u2014 fix(ui): refresh ESS age when live telemetry arrives (#246)\n- [fd16038494ca](https://github.com/victron-venus/inverter-dashboard/commit/fd16038494cade67e825921eb72a81ef786cfa07) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#247)\n- [611cad8bc703](https://github.com/victron-venus/inverter-dashboard/commit/611cad8bc703c87ce41bad8fee721f33c9c45db1) \u2014 feat(notifications): add persistent server-side Web Push (#248)\n- [0d5779c66e58](https://github.com/victron-venus/inverter-dashboard/commit/0d5779c66e58bcae04397a001503d5fc876c3a9c) \u2014 fix: keep optional Web Push compatible with Intel macOS packages (#249)\n- [c58449762d53](https://github.com/victron-venus/inverter-dashboard/commit/c58449762d53b66fe8b49ac719709938548a8813) \u2014 fix: sign Web Push with the configured HTTPS contact URI (#250)\n- [2975d27d94c8](https://github.com/victron-venus/inverter-dashboard/commit/2975d27d94c821d6329ce0ae59d698027639f0c0) \u2014 fix: embed official SPA with Desktop Active Loads colors (#251)\n- [62faffb233fd](https://github.com/victron-venus/inverter-dashboard/commit/62faffb233fdc7b0691a0110fdd01885b34098be) \u2014 fix: complete Desktop controller and data safety parity (#252)\n- [b4a5dd9f426b](https://github.com/victron-venus/inverter-dashboard/commit/b4a5dd9f426b885789d31c5b828dc80111141cb9) \u2014 docs: document current dashboard companion projects (#253)\n- [615c0b2f9e40](https://github.com/victron-venus/inverter-dashboard/commit/615c0b2f9e40b0e9c360e39b2aea9bcfe81ba323) \u2014 chore(deps): update github actions and reusable workflows (#243)\n- [cbc076d28400](https://github.com/victron-venus/inverter-dashboard/commit/cbc076d2840087eb36fc6e0d971a6194164949fe) \u2014 fix: preserve native vehicle charging power in public state (#254)\n- [cd9deaa05247](https://github.com/victron-venus/inverter-dashboard/commit/cd9deaa052476bfda7ad150c48bc2520ae24479d) \u2014 chore(deps): update github actions and reusable workflows (#255)\n- [aeba75b211fd](https://github.com/victron-venus/inverter-dashboard/commit/aeba75b211fd98d34693bbfb42c8645889278aec) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#256)\n- [ed5617f0806b](https://github.com/victron-venus/inverter-dashboard/commit/ed5617f0806b9cd6182ddfc60ef35f2e51e7aace) \u2014 ci: request CodeRabbit autofix after completed reviews (#257)\n- [a5398833a9f5](https://github.com/victron-venus/inverter-dashboard/commit/a5398833a9f562d4bf5a7885de3a5c0f00e0b396) \u2014 Enforce complete security scans and source-bound release notes (#258)\n- [d58e61bdcb92](https://github.com/victron-venus/inverter-dashboard/commit/d58e61bdcb92868dd194f3c449c543724ff058de) \u2014 fix(build): use patched uv for Windows packaging (#259)\n- [5d03bd71746f](https://github.com/victron-venus/inverter-dashboard/commit/5d03bd71746f268686265ca09986d67e2696ef33) \u2014 Backport reviewed toolkit validation maintenance (#260)\n- [b60c1d30a899](https://github.com/victron-venus/inverter-dashboard/commit/b60c1d30a8993ac98e477232c90bd29673281bcf) \u2014 Simplify snapshot parsing while preserving precision and validation order (#261)\n- [f69af6c87953](https://github.com/victron-venus/inverter-dashboard/commit/f69af6c879536cccefb34403143125816edba79d) \u2014 Separate native invalidation field mapping from state updates (#262)\n- [250b6fc7b29a](https://github.com/victron-venus/inverter-dashboard/commit/250b6fc7b29a0527fb3e5e00a8f8ec7270d0c10b) \u2014 Separate notification field and alarm snapshot updates (#263)\n- [0295b5492eb9](https://github.com/victron-venus/inverter-dashboard/commit/0295b5492eb9e2ccd68eda1de299c536f5b92565) \u2014 Separate battery measurements from bank projection (#264)\n- [191b26e44d66](https://github.com/victron-venus/inverter-dashboard/commit/191b26e44d666d405780a1bba735a3722bbedd47) \u2014 refactor: separate solar device projection from aggregate updates (#265)\n- [536b1b9b4252](https://github.com/victron-venus/inverter-dashboard/commit/536b1b9b4252b9ab23c150d9a17dcb04f49de2ab) \u2014 Document existing dashboard error responses in OpenAPI (#266)\n- [9b1208c37793](https://github.com/victron-venus/inverter-dashboard/commit/9b1208c37793e6eb272b3da00cae53c8ddc6bb57) \u2014 refactor: clarify Home Assistant display assembly (#267)\n- [1a595c994b81](https://github.com/victron-venus/inverter-dashboard/commit/1a595c994b8164533a840e0baf44d23792d4dfeb) \u2014 Simplify per-phase AC telemetry projection (#268)\n- [7928265e4220](https://github.com/victron-venus/inverter-dashboard/commit/7928265e42201221cfacf4c112420a300d193f74) \u2014 refactor: clarify Home Assistant action validation (#269)\n- [a34fef450fa2](https://github.com/victron-venus/inverter-dashboard/commit/a34fef450fa25b2409515214a1209a976a2604b0) \u2014 fix: always join MQTT keepalive during cleanup (#270)\n- [7097e957bf62](https://github.com/victron-venus/inverter-dashboard/commit/7097e957bf625f217e82ac52880f072d6f84e0a9) \u2014 refactor: separate owner-bound MQTT session stages (#271)\n- [2f260f88f03b](https://github.com/victron-venus/inverter-dashboard/commit/2f260f88f03be736a68c56bcb879fb50ffcc1633) \u2014 refactor: separate accepted Cerbo message stages (#272)\n- [ef7f2e0e5abd](https://github.com/victron-venus/inverter-dashboard/commit/ef7f2e0e5abd8fb967309afb3c2837bd1a655816) \u2014 fix(ci): preserve the Trivy baseline across workflow callers (#273)\n- [0728f4648544](https://github.com/victron-venus/inverter-dashboard/commit/0728f464854459b36c59d2908f598ca62cc17b7c) \u2014 Refactor WebSocket routing and private cleanup stages (#274)\n- [eae9df0820b2](https://github.com/victron-venus/inverter-dashboard/commit/eae9df0820b2249780061f4373a7fe78715b7d34) \u2014 chore(deps): update github actions and reusable workflows (#275)\n- [53f1c7bc362f](https://github.com/victron-venus/inverter-dashboard/commit/53f1c7bc362fa2a732eb9dc2ddf738ea90649249) \u2014 Enforce exact certificate key sizes before dashboard HTTPS requests (#276)\n- [38e3d6a0c462](https://github.com/victron-venus/inverter-dashboard/commit/38e3d6a0c462b7f400e56817e5d94935e6a674d3) \u2014 Verify TLS keys for MQTT, Web Push and HTTPS server identities (#277)\n- [2a389e521a8f](https://github.com/victron-venus/inverter-dashboard/commit/2a389e521a8f303b198db46e4b087df354f09dcb) \u2014 Simplify verified TLS certificate normalization (#278)\n- [b7147860f737](https://github.com/victron-venus/inverter-dashboard/commit/b7147860f7379c46b832ff1ef73d3b9dd8a2e969) \u2014 Update GitHub Actions and reusable workflows (#279)\n- [0a3eec8352d4](https://github.com/victron-venus/inverter-dashboard/commit/0a3eec8352d41a277b4ae1498f182c18c7da5db6) \u2014 Update GitHub Actions and reusable workflows (#280)\n- [3a987d1272e0](https://github.com/victron-venus/inverter-dashboard/commit/3a987d1272e0c8dece62faeef49ba1e463735965) \u2014 Update GitHub Actions and reusable workflows (#282)\n- [5ddcb1f2ed4a](https://github.com/victron-venus/inverter-dashboard/commit/5ddcb1f2ed4a5570052cf470932215c9b4dbb0c6) \u2014 Update migrated garage and laundry example bindings (#281)\n- [4bf4022dbfc1](https://github.com/victron-venus/inverter-dashboard/commit/4bf4022dbfc1b7c27ace8343b6578d5142d4ad6b) \u2014 fix: use HTTP headers for release API status (#284)\n- [bac4e8cb2b43](https://github.com/victron-venus/inverter-dashboard/commit/bac4e8cb2b43357303b4eefe92b97fa870c08d70) \u2014 Update GitHub Actions and reusable workflows (#283)\n- [3b15cd5f782b](https://github.com/victron-venus/inverter-dashboard/commit/3b15cd5f782b11de4d298f58df25d352048a7a61) \u2014 Update GitHub Actions and reusable workflows (#285)\n- [cee37be4b77c](https://github.com/victron-venus/inverter-dashboard/commit/cee37be4b77c4f29238aad8a0b48f31000bc57fe) \u2014 deps: bump cryptography from 50.0.1 to 50.0.2\n- [c31640cb61a7](https://github.com/victron-venus/inverter-dashboard/commit/c31640cb61a7a1cb6275ea72a4b1e76adca2a9a5) \u2014 deps: bump fastapi from 0.142.2 to 0.143.0\n- [2de383c32eb3](https://github.com/victron-venus/inverter-dashboard/commit/2de383c32eb3d5c533ad7dbc0464d9ac020be6dd) \u2014 Require bounded RC fuzzing with documented targets and evidence (#286)\n- [b1e8cc757591](https://github.com/victron-venus/inverter-dashboard/commit/b1e8cc757591e3870d7b0c0487efcdac1dc9c1c5) \u2014 Merge branch 'main' into dependabot/uv/cryptography-50.0.2\n- [278b7cbc02d6](https://github.com/victron-venus/inverter-dashboard/commit/278b7cbc02d6941f0b0efb4d4fcddcb249706eca) \u2014 Merge pull request #287 from victron-venus/dependabot/uv/cryptography-50.0.2\n- [34380912a58d](https://github.com/victron-venus/inverter-dashboard/commit/34380912a58d8903d494bda199fbbb876aad5c5c) \u2014 Merge branch 'main' into dependabot/uv/fastapi-0.143.0\n- [63cee24cb1e5](https://github.com/victron-venus/inverter-dashboard/commit/63cee24cb1e53b70738384c926a00771161fa45a) \u2014 deps: bump websockets from 17.1 to 17.2\n- [f64e6ca60b8d](https://github.com/victron-venus/inverter-dashboard/commit/f64e6ca60b8df868f3de47780d6287609e288df2) \u2014 Merge pull request #288 from victron-venus/dependabot/uv/fastapi-0.143.0\n- [d9deb0bdcd52](https://github.com/victron-venus/inverter-dashboard/commit/d9deb0bdcd52324e346fddf80c7ec259716f1da3) \u2014 Merge branch 'main' into dependabot/uv/websockets-17.2\n- [139675e22eda](https://github.com/victron-venus/inverter-dashboard/commit/139675e22edafee5366358850322364daafc240b) \u2014 Merge pull request #289 from victron-venus/dependabot/uv/websockets-17.2\n\n\n\n\n\n---\n\n## victron-venus/inverter-monitoring \u2014 v1.3.6\n\n[Published stable release](https://github.com/victron-venus/inverter-monitoring/releases/tag/v1.3.6)\n\n## Changes in 1.3.6\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n- Instrument the production webhook signature verifier through the normal import hook and reject RC fuzz startup if production instrumentation is missing.\n\n### Changes\n\n- Reuse blended analysis series across filter candidates while preserving report output.\n- Require explicit monitoring credentials, bind published ports to loopback by default, and disable anonymous Grafana viewing unless explicitly enabled.\n- Update Werkzeug and the pinned uv/webhook tooling, enforce complete security scans, and verify deterministic release archives.\n- Fix release API status handling and refresh shared CI and release-helper analysis.\n\n### Upgrade\n\nSet nonempty `INFLUX_ADMIN_PASSWORD`, `GRAFANA_ADMIN_PASSWORD` and `INFLUX_TOKEN` before recreating services. Existing stored credentials are not rotated by editing `.env`. Follow [the migration guide](https://github.com/victron-venus/inverter-monitoring/blob/7e91b44c2dcff6fff513d3b723ae1bb15ff0c25a/docs/secure-deployment.md) to preserve data and arrange authenticated remote access.\n\n### Security\n\nRemove known default admin passwords and require explicit credentials before services start. Published ports default to loopback and anonymous Grafana viewing is disabled by default. Rotate any previously used default credentials on existing instances; these defaults do not replace TLS or host access controls.\n\n## Build provenance\n\nPromoted unchanged from [v1.3.6-rc.2](https://github.com/victron-venus/inverter-monitoring/releases/tag/v1.3.6-rc.2).\n\nSource: `7e91b44c2dcff6fff513d3b723ae1bb15ff0c25a`\n\nValidation: https://github.com/victron-venus/inverter-monitoring/actions/runs/38508864160\n\nPromotion: https://github.com/victron-venus/inverter-monitoring/actions/runs/38510791867\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.3.5\n\nReleased source: [7e91b44c2dcf](https://github.com/victron-venus/inverter-monitoring/commit/7e91b44c2dcff6fff513d3b723ae1bb15ff0c25a).\nPrevious stable source: [2955a5aa7c29](https://github.com/victron-venus/inverter-monitoring/commit/2955a5aa7c29038fea518425d933caca54cc7c36).\n\n[Full source history](https://github.com/victron-venus/inverter-monitoring/compare/2955a5aa7c29038fea518425d933caca54cc7c36...7e91b44c2dcff6fff513d3b723ae1bb15ff0c25a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 27 merged pull requests\n\n- [#112](https://github.com/victron-venus/inverter-monitoring/pull/112) \u2014 chore(deps): update github actions and reusable workflows\n- [#114](https://github.com/victron-venus/inverter-monitoring/pull/114) \u2014 ci: prepare optional runner reserve without enabling it\n- [#113](https://github.com/victron-venus/inverter-monitoring/pull/113) \u2014 chore(deps): update github actions and reusable workflows\n- [#115](https://github.com/victron-venus/inverter-monitoring/pull/115) \u2014 build(deps): bump werkzeug from 3.1.8 to 3.1.9\n- [#116](https://github.com/victron-venus/inverter-monitoring/pull/116) \u2014 perf(analysis): reuse blended series across filter candidates\n- [#117](https://github.com/victron-venus/inverter-monitoring/pull/117) \u2014 chore(deps): update github actions and reusable workflows\n- [#118](https://github.com/victron-venus/inverter-monitoring/pull/118) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#119](https://github.com/victron-venus/inverter-monitoring/pull/119) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#120](https://github.com/victron-venus/inverter-monitoring/pull/120) \u2014 Enforce complete security scans and source-bound release notes\n- [#121](https://github.com/victron-venus/inverter-monitoring/pull/121) \u2014 Pin patched uv in CI and webhook image\n- [#122](https://github.com/victron-venus/inverter-monitoring/pull/122) \u2014 Simplify nightly identity validation while preserving ASCII rules\n- [#123](https://github.com/victron-venus/inverter-monitoring/pull/123) \u2014 Isolate release validation failures in regression tests\n- [#124](https://github.com/victron-venus/inverter-monitoring/pull/124) \u2014 Simplify pytest fixture decorators\n- [#125](https://github.com/victron-venus/inverter-monitoring/pull/125) \u2014 Clarify release archive inputs and verify deterministic packaging\n- [#126](https://github.com/victron-venus/inverter-monitoring/pull/126) \u2014 Group grid analysis report lines without changing output\n- [#128](https://github.com/victron-venus/inverter-monitoring/pull/128) \u2014 Require private authenticated monitoring defaults\n- [#127](https://github.com/victron-venus/inverter-monitoring/pull/127) \u2014 chore(deps): update github actions and reusable workflows\n- [#129](https://github.com/victron-venus/inverter-monitoring/pull/129) \u2014 fix(ci): refresh workflow pins and stabilize credential checks\n- [#130](https://github.com/victron-venus/inverter-monitoring/pull/130) \u2014 fix(ci): include release helpers in Sonar analysis\n- [#131](https://github.com/victron-venus/inverter-monitoring/pull/131) \u2014 chore(deps): update github actions and reusable workflows\n- [#132](https://github.com/victron-venus/inverter-monitoring/pull/132) \u2014 chore(deps): update github actions and reusable workflows\n- [#134](https://github.com/victron-venus/inverter-monitoring/pull/134) \u2014 fix: use HTTP headers for release API status\n- [#133](https://github.com/victron-venus/inverter-monitoring/pull/133) \u2014 chore(deps): update github actions and reusable workflows\n- [#135](https://github.com/victron-venus/inverter-monitoring/pull/135) \u2014 chore: prepare release 1.3.6\n- [#136](https://github.com/victron-venus/inverter-monitoring/pull/136) \u2014 chore(deps): update github actions and reusable workflows\n- [#138](https://github.com/victron-venus/inverter-monitoring/pull/138) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#139](https://github.com/victron-venus/inverter-monitoring/pull/139) \u2014 fix: instrument production verifier in RC fuzzing\n\n\n\n\n\nAll 27 commits\n\n- [29270515582f](https://github.com/victron-venus/inverter-monitoring/commit/29270515582f7aabf10622f1bd2145ff641a441a) \u2014 chore(deps): update github actions and reusable workflows (#112)\n- [dc6de135ce31](https://github.com/victron-venus/inverter-monitoring/commit/dc6de135ce31f25a567e1e566bc6229aabd35de9) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#114)\n- [4e57501c2a7b](https://github.com/victron-venus/inverter-monitoring/commit/4e57501c2a7bf2dfc4fc0a9f76ac311144225f5c) \u2014 chore(deps): update github actions and reusable workflows (#113)\n- [4279215e8585](https://github.com/victron-venus/inverter-monitoring/commit/4279215e8585eb4cd35ddda6b1afebbdf472ce50) \u2014 build(deps): bump werkzeug from 3.1.8 to 3.1.9 (#115)\n- [7b532447828a](https://github.com/victron-venus/inverter-monitoring/commit/7b532447828aebcea1ba8e20c7d78278e70fc1ca) \u2014 perf(analysis): reuse blended series across filter candidates (#116)\n- [923f8ff62b87](https://github.com/victron-venus/inverter-monitoring/commit/923f8ff62b872d75595eeb5fc23f0b1463f2f9be) \u2014 chore(deps): update github actions and reusable workflows (#117)\n- [8199271bfc8d](https://github.com/victron-venus/inverter-monitoring/commit/8199271bfc8d0285133fdabaa835e71dd90f9b1d) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#118)\n- [6e1debea4610](https://github.com/victron-venus/inverter-monitoring/commit/6e1debea46108292c255b7702767b14422697ee1) \u2014 ci: request CodeRabbit autofix after completed reviews (#119)\n- [2533c58ae6f4](https://github.com/victron-venus/inverter-monitoring/commit/2533c58ae6f4c8450003bed8365bb0cf2fbe214b) \u2014 Enforce complete security scans and source-bound release notes (#120)\n- [5b38971df7ad](https://github.com/victron-venus/inverter-monitoring/commit/5b38971df7ad23c890f841cecf895ab3251daf37) \u2014 fix(ci): pin patched uv and webhook image (#121)\n- [69b8afdc493f](https://github.com/victron-venus/inverter-monitoring/commit/69b8afdc493f2af2ca943554fb6c19464047bc2e) \u2014 Backport reviewed toolkit validation maintenance (#122)\n- [54cb7152f415](https://github.com/victron-venus/inverter-monitoring/commit/54cb7152f415e3606c0b996cdcc595d5f49d8c21) \u2014 Isolate release validation failures in regression tests (#123)\n- [ee61deff8db3](https://github.com/victron-venus/inverter-monitoring/commit/ee61deff8db3cfdbffbcdbdb7c33556c55709be6) \u2014 Simplify pytest fixture decorators (#124)\n- [1b993416906a](https://github.com/victron-venus/inverter-monitoring/commit/1b993416906a2acfb6694de830afaf0333d5bdea) \u2014 Clarify release archive inputs and verify deterministic packaging (#125)\n- [73fa29e1c843](https://github.com/victron-venus/inverter-monitoring/commit/73fa29e1c8435446be103cb48c9afd623d143258) \u2014 Group grid analysis report lines without changing output (#126)\n- [7b6a30133998](https://github.com/victron-venus/inverter-monitoring/commit/7b6a301339987b2fea3fe3e6300de9a399add6d6) \u2014 Require private authenticated monitoring defaults (#128)\n- [8dbece36d9d7](https://github.com/victron-venus/inverter-monitoring/commit/8dbece36d9d7bdba0cf4cc4a6e3fd1f87483c410) \u2014 chore(deps): update github actions and reusable workflows (#127)\n- [e8a8c3c58b5d](https://github.com/victron-venus/inverter-monitoring/commit/e8a8c3c58b5d97996ebbe0847197d341b74c7b84) \u2014 fix(ci): refresh workflow pins and stabilize credential checks (#129)\n- [194752efe4ab](https://github.com/victron-venus/inverter-monitoring/commit/194752efe4ab9443a4b602b285786a9114b17f19) \u2014 fix(ci): include release helpers in Sonar analysis (#130)\n- [3b74704e932d](https://github.com/victron-venus/inverter-monitoring/commit/3b74704e932d1a5ac25b0c275c3c20cfffa8ab01) \u2014 chore(deps): update github actions and reusable workflows (#131)\n- [6495019cdbf0](https://github.com/victron-venus/inverter-monitoring/commit/6495019cdbf0cf9ee384a5028b2907db3170d42c) \u2014 chore(deps): update github actions and reusable workflows (#132)\n- [e656405338e0](https://github.com/victron-venus/inverter-monitoring/commit/e656405338e04a0f0367ec5afc6c0086429b2130) \u2014 fix: use HTTP headers for release API status (#134)\n- [02da97a45466](https://github.com/victron-venus/inverter-monitoring/commit/02da97a454664704dd9c5e7e0bb313845d8f1480) \u2014 chore(deps): update github actions and reusable workflows (#133)\n- [bc2df39b071a](https://github.com/victron-venus/inverter-monitoring/commit/bc2df39b071a5b36e61d18a2cea78c92d80e0ead) \u2014 chore: prepare release 1.3.6 (#135)\n- [39bfa1cde928](https://github.com/victron-venus/inverter-monitoring/commit/39bfa1cde9289f1e6fa330a893c7584fed6ae3a4) \u2014 chore(deps): update github actions and reusable workflows (#136)\n- [571d36a5f44b](https://github.com/victron-venus/inverter-monitoring/commit/571d36a5f44ba6c92b46bf39644d40c0a574863b) \u2014 feat(release): qualify candidates with bounded Linux fuzzing (#138)\n- [7e91b44c2dcf](https://github.com/victron-venus/inverter-monitoring/commit/7e91b44c2dcff6fff513d3b723ae1bb15ff0c25a) \u2014 fix: instrument production webhook verifier in RC fuzzing (#139)\n\n\n\n\n\n---\n\n## victron-venus/inverter-dashboard-go \u2014 v1.9.11\n\n[Published stable release](https://github.com/victron-venus/inverter-dashboard-go/releases/tag/v1.9.11)\n\n## Changes in 1.9.11\n\n### Changed\n\n- Add bounded native Go fuzz qualification for public release candidates, with\n  source-bound evidence, synthetic seeds and documented reproduction. PRs, betas\n  and nightlies retain ordinary tests without mutation campaigns.\n- **Water system migrated from Home Assistant to dbus-pump via Cerbo MQTT** (no HA):\n  - New `cerbo:` config section (`portal_id`, `tank_instance`, `pump_instance`,\n    `valve_instance`; env: `CERBO_PORTAL_ID`, `WATER_*_INSTANCE`) subscribes to\n    `N//tank//Level` and `N//pump//State`\n  - `water_valve_entity` / `water_level_entity` / `pump_switch_entity` removed from\n    the HomeAssistant config; HA no longer polls or overlays any water state\n  - Removed `[BROADCAST DEBUG]` per-key logging from the websocket broadcaster\n- **EV data migrated from Home Assistant to dbus-ev / dbus-evcharger via Cerbo MQTT** (no HA):\n  - Extended `cerbo:` config section with `ev_instance` (default 22) and\n    `evcharger_instance` (default 40); env `EV_INSTANCE` / `EVCHARGER_INSTANCE`\n  - Subscribes to `N//ev//Soc`, `N//ev//Ac/Power` (W \u2192 kW),\n    `N//evcharger//Ac/Power` (W \u2192 kW); car stays on `ev` per dbus-ev's\n    bus-name contract (not `evcharger`)\n  - `car_soc_entity` / `ev_charging_kw_entity` / `ev_power_entity` removed from the\n    HomeAssistant config; HA no longer polls or overlays any EV state\n\n### Maintenance\n\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n\n### Upgrade\n\nWater and EV values use their native Cerbo MQTT services. Configure the cerbo portal and service instances described above; old Home Assistant water and EV entity settings no longer populate those values. Retain existing unrelated configuration and verify source freshness before enabling controls.\n\n### Security\n\nOutbound Web Push, gateway, Home Assistant HTTPS and update downloads now require a normally verified certificate chain whose RSA keys are at least 2048 bits, ECDSA keys at least 224 bits, or valid Ed25519 keys. Replace weaker server or CA certificates before upgrading; hostname and trust verification remain required. HTTPS OTLP export uses the same peer-key checks and rejects undersized keys in the configured mTLS client chain. Its CA/client-certificate environment precedence and explicit HTTP behavior are preserved.\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nPromoted unchanged from [v1.9.11-rc.1](https://github.com/victron-venus/inverter-dashboard-go/releases/tag/v1.9.11-rc.1).\n\nSource: `8cca558cf8bd6d8862d157804c7cb10aa310aa2c`\n\nValidation: https://github.com/victron-venus/inverter-dashboard-go/actions/runs/38487667926\n\nPromotion: https://github.com/victron-venus/inverter-dashboard-go/actions/runs/38510800151\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.9.9\n\nReleased source: [8cca558cf8bd](https://github.com/victron-venus/inverter-dashboard-go/commit/8cca558cf8bd6d8862d157804c7cb10aa310aa2c).\nPrevious stable source: [09cf4678a35f](https://github.com/victron-venus/inverter-dashboard-go/commit/09cf4678a35f92e4553f2e5db639ae1aa4648b16).\n\n[Full source history](https://github.com/victron-venus/inverter-dashboard-go/compare/09cf4678a35f92e4553f2e5db639ae1aa4648b16...8cca558cf8bd6d8862d157804c7cb10aa310aa2c). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 33 merged pull requests\n\n- [#204](https://github.com/victron-venus/inverter-dashboard-go/pull/204) \u2014 fix: preserve Victron event time across dashboard reconnects\n- [#205](https://github.com/victron-venus/inverter-dashboard-go/pull/205) \u2014 fix: align native alerts, ESS and Home with Desktop\n- [#206](https://github.com/victron-venus/inverter-dashboard-go/pull/206) \u2014 fix: report refused ESS selections in embedded UI\n- [#207](https://github.com/victron-venus/inverter-dashboard-go/pull/207) \u2014 fix: keep ESS freshness current when browser timers are throttled\n- [#208](https://github.com/victron-venus/inverter-dashboard-go/pull/208) \u2014 ci: prepare optional runner reserve without enabling it\n- [#209](https://github.com/victron-venus/inverter-dashboard-go/pull/209) \u2014 feat: deliver persistent browser system notifications\n- [#210](https://github.com/victron-venus/inverter-dashboard-go/pull/210) \u2014 fix: record sanitized Web Push attempt outcomes\n- [#211](https://github.com/victron-venus/inverter-dashboard-go/pull/211) \u2014 fix: match Desktop Active Loads value colors\n- [#212](https://github.com/victron-venus/inverter-dashboard-go/pull/212) \u2014 fix: complete Desktop controller and telemetry parity\n- [#213](https://github.com/victron-venus/inverter-dashboard-go/pull/213) \u2014 docs: clarify public dashboard relationships and ingress setup\n- [#203](https://github.com/victron-venus/inverter-dashboard-go/pull/203) \u2014 chore(deps): update github actions and reusable workflows\n- [#214](https://github.com/victron-venus/inverter-dashboard-go/pull/214) \u2014 fix: clear stored HA health after failed refresh\n- [#215](https://github.com/victron-venus/inverter-dashboard-go/pull/215) \u2014 chore(deps): update github actions and reusable workflows\n- [#216](https://github.com/victron-venus/inverter-dashboard-go/pull/216) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#217](https://github.com/victron-venus/inverter-dashboard-go/pull/217) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#218](https://github.com/victron-venus/inverter-dashboard-go/pull/218) \u2014 Require source-bound release notes and document security process\n- [#219](https://github.com/victron-venus/inverter-dashboard-go/pull/219) \u2014 Pin the vulnerability scanner source revision\n- [#220](https://github.com/victron-venus/inverter-dashboard-go/pull/220) \u2014 Require strong certificate keys for outbound HTTPS clients\n- [#221](https://github.com/victron-venus/inverter-dashboard-go/pull/221) \u2014 Apply TLS key policy to OTLP without changing environment precedence\n- [#222](https://github.com/victron-venus/inverter-dashboard-go/pull/222) \u2014 Use verified Go CI tooling and clearer release validation tests\n- [#223](https://github.com/victron-venus/inverter-dashboard-go/pull/223) \u2014 fix: validate HTTPS server certificate keys before listening\n- [#224](https://github.com/victron-venus/inverter-dashboard-go/pull/224) \u2014 chore(deps): update github actions and reusable workflows\n- [#225](https://github.com/victron-venus/inverter-dashboard-go/pull/225) \u2014 fix(ci): update workflows and patch Go HTTP vulnerabilities\n- [#226](https://github.com/victron-venus/inverter-dashboard-go/pull/226) \u2014 chore(deps): update github actions and reusable workflows\n- [#228](https://github.com/victron-venus/inverter-dashboard-go/pull/228) \u2014 chore(deps): update github actions and reusable workflows\n- [#227](https://github.com/victron-venus/inverter-dashboard-go/pull/227) \u2014 Document optional bindings for migrated outlets\n- [#230](https://github.com/victron-venus/inverter-dashboard-go/pull/230) \u2014 fix: use HTTP headers for release API status\n- [#229](https://github.com/victron-venus/inverter-dashboard-go/pull/229) \u2014 chore(deps): update github actions and reusable workflows\n- [#233](https://github.com/victron-venus/inverter-dashboard-go/pull/233) \u2014 chore(deps): bump github.com/prometheus/client_golang from 1.24.1 to 1.25.0\n- [#231](https://github.com/victron-venus/inverter-dashboard-go/pull/231) \u2014 docker: bump debian from `3783cc0` to `7c7b2c9`\n- [#232](https://github.com/victron-venus/inverter-dashboard-go/pull/232) \u2014 chore(deps): bump golang.org/x/sys from 0.48.0 to 0.49.0\n- [#234](https://github.com/victron-venus/inverter-dashboard-go/pull/234) \u2014 chore(deps): update github actions and reusable workflows\n- [#235](https://github.com/victron-venus/inverter-dashboard-go/pull/235) \u2014 Require RC-only fuzzing for dashboard input boundaries\n\n\n\n\n\nAll 37 commits\n\n- [9dcd4ed43d7a](https://github.com/victron-venus/inverter-dashboard-go/commit/9dcd4ed43d7a3ff57a9c8faf18cf4cb419bf5ec2) \u2014 fix: preserve Victron event time across dashboard reconnects (#204)\n- [776fe8d69d43](https://github.com/victron-venus/inverter-dashboard-go/commit/776fe8d69d439c1488e78a2ddc2c9906a96546bc) \u2014 fix: match Desktop alerts, ESS selection and Home configuration\n- [022291776105](https://github.com/victron-venus/inverter-dashboard-go/commit/022291776105457dc25da5bd8b93cbe68b04bd15) \u2014 fix: embed reviewed HTTP-compatible ESS menu\n- [9f3b839bf05e](https://github.com/victron-venus/inverter-dashboard-go/commit/9f3b839bf05e68ff35112d21a355f995fd4beb7c) \u2014 Merge pull request #205 from victron-venus/fix/desktop-parity-20261005\n- [0a2e1f3e37b9](https://github.com/victron-venus/inverter-dashboard-go/commit/0a2e1f3e37b9ea356f6e860c010b2e8e097b5988) \u2014 fix: embed immediate feedback for refused ESS commands\n- [799f634423e6](https://github.com/victron-venus/inverter-dashboard-go/commit/799f634423e6c9ebb5a1bc5c312a846c8443fd17) \u2014 Merge pull request #206 from victron-venus/fix/desktop-parity-feedback-20261005\n- [82c6de4d64a6](https://github.com/victron-venus/inverter-dashboard-go/commit/82c6de4d64a6b2682dfa3331e895c7ad0ae13666) \u2014 fix: embed ESS freshness clock correction\n- [3cd3227c4ec1](https://github.com/victron-venus/inverter-dashboard-go/commit/3cd3227c4ec1f71d442d86ebcde989c4fdc9b7d4) \u2014 Merge pull request #207 from victron-venus/fix/ess-clock-embed-20261005\n- [7514de3f957a](https://github.com/victron-venus/inverter-dashboard-go/commit/7514de3f957ab780dad14fea3c43303448c746c5) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#208)\n- [8fb7e06b6a40](https://github.com/victron-venus/inverter-dashboard-go/commit/8fb7e06b6a40c58a13a101d5b1d2c53634582617) \u2014 feat: deliver persistent browser system notifications (#209)\n- [c9007db2d960](https://github.com/victron-venus/inverter-dashboard-go/commit/c9007db2d960db853df3d23b14e27fc3a0824d67) \u2014 fix: record sanitized Web Push attempt outcomes (#210)\n- [e09ebbb6545a](https://github.com/victron-venus/inverter-dashboard-go/commit/e09ebbb6545a4edeea9917b0d974ac3646088670) \u2014 fix: adopt Desktop Active Loads value colors (#211)\n- [2385130560dd](https://github.com/victron-venus/inverter-dashboard-go/commit/2385130560dd84697c3e30b2bbf0ae6b428ef635) \u2014 fix: complete Desktop controller and telemetry parity (#212)\n- [434359a7e1ec](https://github.com/victron-venus/inverter-dashboard-go/commit/434359a7e1ecaff2cc5b562cff85769af41911b2) \u2014 docs: clarify public dashboard relationships and ingress setup (#213)\n- [5038bcfbe998](https://github.com/victron-venus/inverter-dashboard-go/commit/5038bcfbe99870e6663ddf67d1faee29dfbdf9be) \u2014 chore(deps): update github actions and reusable workflows (#203)\n- [c88083749b0a](https://github.com/victron-venus/inverter-dashboard-go/commit/c88083749b0a4be380cfe8daf039d607fd7be134) \u2014 fix: clear stored HA health after failed refresh (#214)\n- [0eab177ed0d7](https://github.com/victron-venus/inverter-dashboard-go/commit/0eab177ed0d716cfa4e5c822b251e079ab027a9b) \u2014 chore(deps): update github actions and reusable workflows (#215)\n- [f3b58e3e2b89](https://github.com/victron-venus/inverter-dashboard-go/commit/f3b58e3e2b891b6d1095225ab93696fa517ba818) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#216)\n- [c6e6619e3dba](https://github.com/victron-venus/inverter-dashboard-go/commit/c6e6619e3dbaab804541deca86ab90e3a182696d) \u2014 ci: request CodeRabbit autofix after completed reviews (#217)\n- [1b699c4a4f53](https://github.com/victron-venus/inverter-dashboard-go/commit/1b699c4a4f537d2a316a0c30b67a7d527065171d) \u2014 Require source-bound release notes and document security process (#218)\n- [e922120f6eaa](https://github.com/victron-venus/inverter-dashboard-go/commit/e922120f6eaa81b46341d08dc14c045c5bfa9781) \u2014 Pin the vulnerability scanner source revision (#219)\n- [2b55e40cfc51](https://github.com/victron-venus/inverter-dashboard-go/commit/2b55e40cfc51fc242d152f52a778c01d4a439ae7) \u2014 Require strong verified certificate chains for outbound clients (#220)\n- [926fbb910630](https://github.com/victron-venus/inverter-dashboard-go/commit/926fbb9106307e5e72d4449b4aee3a45116c949c) \u2014 Apply TLS key policy to OTLP without changing environment precedence (#221)\n- [c176611e4680](https://github.com/victron-venus/inverter-dashboard-go/commit/c176611e46807ddb471f632f8ccaa3f723fde226) \u2014 Use verified Go CI tooling and clearer release validation tests (#222)\n- [0873b2dd0d83](https://github.com/victron-venus/inverter-dashboard-go/commit/0873b2dd0d837ea898c0b98a5d41f3680435632e) \u2014 fix: validate HTTPS server certificate keys before listening (#223)\n- [630bdbe2e314](https://github.com/victron-venus/inverter-dashboard-go/commit/630bdbe2e314c65f3833ce51a11984a7f6023e16) \u2014 chore(deps): update github actions and reusable workflows (#224)\n- [1c645ea0b1fc](https://github.com/victron-venus/inverter-dashboard-go/commit/1c645ea0b1fcce50ca4d9128b1a88b804c1988e3) \u2014 fix(ci): update workflows and patch Go HTTP vulnerabilities (#225)\n- [94c81c3be620](https://github.com/victron-venus/inverter-dashboard-go/commit/94c81c3be6206fc6419a0efd596c41b57fcd2b22) \u2014 chore(deps): update github actions and reusable workflows (#226)\n- [ccfedb85a023](https://github.com/victron-venus/inverter-dashboard-go/commit/ccfedb85a023b8b04b4201280e1e6a1799cf98ed) \u2014 chore(deps): update github actions and reusable workflows (#228)\n- [8d830af6f40c](https://github.com/victron-venus/inverter-dashboard-go/commit/8d830af6f40c05c7f6fa641d0d5263918a5a14b5) \u2014 Update migrated garage and laundry example bindings (#227)\n- [16898147b852](https://github.com/victron-venus/inverter-dashboard-go/commit/16898147b852a79df9628357b6e1ecfc53a5ab45) \u2014 fix: use HTTP headers for release API status (#230)\n- [61b8aba9fa2d](https://github.com/victron-venus/inverter-dashboard-go/commit/61b8aba9fa2da530ff1b3e8756c29b5bb5926074) \u2014 chore(deps): update github actions and reusable workflows (#229)\n- [38f56b18eb98](https://github.com/victron-venus/inverter-dashboard-go/commit/38f56b18eb98429521e7525c742a004c5a8d92bb) \u2014 chore(deps): bump github.com/prometheus/client_golang (#233)\n- [153b114be296](https://github.com/victron-venus/inverter-dashboard-go/commit/153b114be296e03c124d3d2d5183f2e306cbf7bb) \u2014 docker: bump debian from `3783cc0` to `7c7b2c9` (#231)\n- [bb1fd8f9e875](https://github.com/victron-venus/inverter-dashboard-go/commit/bb1fd8f9e875688a983331910ad18474a7f70e01) \u2014 chore(deps): bump golang.org/x/sys from 0.48.0 to 0.49.0 (#232)\n- [bff63f9a6dc3](https://github.com/victron-venus/inverter-dashboard-go/commit/bff63f9a6dc36f25e4eecd15291c2a96e88f1f8e) \u2014 chore(deps): update github actions and reusable workflows (#234)\n- [8cca558cf8bd](https://github.com/victron-venus/inverter-dashboard-go/commit/8cca558cf8bd6d8862d157804c7cb10aa310aa2c) \u2014 Require RC-only fuzzing for dashboard input boundaries (#235)\n\n\n\n\n\n---\n\n## victron-venus/inverter-desktop \u2014 v2.5.48\n\n[Published stable release](https://github.com/victron-venus/inverter-desktop/releases/tag/v2.5.48)\n\n## Changes in 2.5.48\n\n### Added\n- Ring-MQTT camera motion/ding handling via HA MQTT `camera_topic` wildcards and optional\n  `ring_snapshot_url_template` (HTTP snapshot / HA camera_proxy). See `docs/ring-mqtt.md`.\n- Per-plugin always-on-top video windows, disabled by default, and exclusions for\n  individual legacy camera sources.\n- Live Home Assistant camera previews from configured MQTT URL topics.\n- Daily grid import and export in kWh beside the current tariff, using the\n  controller's physical Victron meter readings. Partial days show their start\n  time, and unavailable or stale readings remain unknown.\n\n### Fixed\n- Reject undersized RSA and ECDSA keys throughout the Apple-validated TLS\n  certificate chain, including trust anchors omitted by the server.\n- Desktop tariff exports use the system save dialog, avoiding a macOS WebKit\n  download hang. Cancelling the export leaves the tariff draft unchanged.\n- Camera previews start with less repeated work and discard stale queued live-preview frames.\n- Configuration restore no longer leaks subscriptions or lets an older load\n  overwrite newly restored settings. Plugin status refreshes coalesce event bursts.\n- Plugin restoration avoids repeatedly verifying every installed package for\n  each declaration while retaining integrity checks for the selected package.\n- Local macOS updates stage the replacement application before stopping the old\n  one and restore the previous bundle if replacement fails.\n- The tariff spreadsheet uses matching Univer 1.0.2 packages, fixing builds that\n  mixed incompatible Facade types. Dependabot now updates the Univer family together.\n- The tariff in the daily statistics strip inherits the surrounding typography\n  and stays inline with the other values.\n\n### Changed\n\n- Update both Tauri API layers to 2.12.2, ZIP packaging to 9.0.0, and the compatible frontend dependencies together.\n- Refresh quinn-proto to 0.11.18 in the application and Home Assistant worker locks, closing the known peer-triggered panic and memory-exhaustion advisories.\n- Update Lucide icons and Prettier. Remove the unused direct Undici development\n  dependency; jsdom keeps its compatible, patched Undici 7.29.1 dependency.\n\n### Upgrade\n- Windows HTTPS integrations require certificate chains with RSA keys of at\n  least 2048 bits or ECDSA keys of at least 256 bits and SHA-2 signatures.\n  Apple platform-verified connections require the same minimum key sizes,\n  including the trust anchor. Replace undersized private CA keys or legacy\n  signatures before upgrading; certificate trust and hostname verification\n  remain enabled.\n- Local authentication passwords migrate once to Argon2id verifiers while keeping\n  the same login. This storage change is one-way: older app versions cannot\n  unlock migrated profiles. Portable settings exports do not include credentials;\n  see `docs/desktop-hardening.md` before intentionally downgrading.\n- Application updates preserve the existing configuration, cached encryption key,\n  plugin version pins and enabled/disabled choices. Camera packages remain managed\n  separately through the Plugins settings.\n- Keep the previous application bundle for rollback. Updating the app does not\n  require exporting and importing configuration or enabling camera plugins.\n\n### Maintenance\n\n- Gate release candidates on bounded camera-topic, live-URL, and worker-frame fuzz campaigns, retaining source-bound validation evidence.\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n\n### Security\n- Backport the upstream GLib `VariantStrIter` pointer-mutability fix for\n  RUSTSEC-2024-0429 (GHSA-wrw7-89jp-8q8g) while retaining Tauri's GLib 0.18 API.\n  An optimized regression reproduces the original crash and passes the fix.\n  This is part of the unreleased development line, not a retroactive claim about\n  previously published packages.\n- Remove six obsolete Cargo advisory ignores after verifying that the locked\n  rustls-webpki and quick-xml versions already contain their upstream fixes.\n- Apply explicit strong-sign policy to Windows' native certificate-chain\n  builder for plugin downloads, media transfers and Home Assistant HTTP. Earlier\n  native verification could accept weak intermediate and trusted-root keys.\n- Replace reversible local login passwords with salted Argon2id verifiers,\n  keep them out of settings IPC and exports, and atomically migrate the native\n  configuration before granting access. Outbound service credentials are unchanged.\n- Verify the official Gradle 8.14.3 wrapper and pinned distribution checksum before and after Android project generation.\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nFinal build from accepted v2.5.48-rc.2; new verified package bytes.\n\nSource: `b13e1432b55ff9bd4d060513326b4cb9c2bcac0a`\n\nValidation: https://github.com/victron-venus/inverter-desktop/actions/runs/38510610296\n\nSee `release-manifest.json` for package hashes and version input evidence.\n\n\n## Complete changes since v2.5.47\n\nReleased source: [b13e1432b55f](https://github.com/victron-venus/inverter-desktop/commit/b13e1432b55ff9bd4d060513326b4cb9c2bcac0a).\nPrevious stable source: [97264f575418](https://github.com/victron-venus/inverter-desktop/commit/97264f5754187bab47937e253ef6a1b80976dc5b).\n\n[Full source history](https://github.com/victron-venus/inverter-desktop/compare/97264f5754187bab47937e253ef6a1b80976dc5b...b13e1432b55ff9bd4d060513326b4cb9c2bcac0a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 36 merged pull requests\n\n- [#588](https://github.com/victron-venus/inverter-desktop/pull/588) \u2014 ci: prepare optional runner reserve without enabling it\n- [#587](https://github.com/victron-venus/inverter-desktop/pull/587) \u2014 chore(deps): update github actions and reusable workflows\n- [#596](https://github.com/victron-venus/inverter-desktop/pull/596) \u2014 build(deps): bump @tauri-apps/api from 2.12.0 to 2.12.1\n- [#594](https://github.com/victron-venus/inverter-desktop/pull/594) \u2014 build(deps): consolidate desktop updates and security patches\n- [#578](https://github.com/victron-venus/inverter-desktop/pull/578) \u2014 fix: restore native Victron alarm banners over IGW\n- [#597](https://github.com/victron-venus/inverter-desktop/pull/597) \u2014 fix(mqtt): accept native zero EV SoC after sample throttle\n- [#598](https://github.com/victron-venus/inverter-desktop/pull/598) \u2014 build(deps): bump tokio from 1.53.1 to 1.53.2 in /src-tauri\n- [#599](https://github.com/victron-venus/inverter-desktop/pull/599) \u2014 build(deps): bump @lucide/vue from 1.50.0 to 1.51.0\n- [#600](https://github.com/victron-venus/inverter-desktop/pull/600) \u2014 fix: reject inherited ESS mode aliases\n- [#601](https://github.com/victron-venus/inverter-desktop/pull/601) \u2014 chore(deps): update github actions and reusable workflows\n- [#602](https://github.com/victron-venus/inverter-desktop/pull/602) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#603](https://github.com/victron-venus/inverter-desktop/pull/603) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#605](https://github.com/victron-venus/inverter-desktop/pull/605) \u2014 build(deps): bump @lucide/vue from 1.51.0 to 1.52.0\n- [#604](https://github.com/victron-venus/inverter-desktop/pull/604) \u2014 build(deps-dev): bump jsdom from 29.1.1 to 30.1.2\n- [#606](https://github.com/victron-venus/inverter-desktop/pull/606) \u2014 Require source-bound release notes and document security process\n- [#607](https://github.com/victron-venus/inverter-desktop/pull/607) \u2014 Verify Gradle bootstrap before Android builds\n- [#608](https://github.com/victron-venus/inverter-desktop/pull/608) \u2014 Simplify nightly identity validation while preserving ASCII rules\n- [#609](https://github.com/victron-venus/inverter-desktop/pull/609) \u2014 refactor: clarify meter, tariff and inventory validation\n- [#610](https://github.com/victron-venus/inverter-desktop/pull/610) \u2014 fix(ui): improve control contrast and simplify frontend flows\n- [#611](https://github.com/victron-venus/inverter-desktop/pull/611) \u2014 Keep status announcement regions mounted before updates\n- [#612](https://github.com/victron-venus/inverter-desktop/pull/612) \u2014 fix(auth): migrate local login passwords to Argon2id verifiers\n- [#613](https://github.com/victron-venus/inverter-desktop/pull/613) \u2014 Strengthen release rejection tests and preserve build guard behavior\n- [#614](https://github.com/victron-venus/inverter-desktop/pull/614) \u2014 Isolate native plugin packager build layout\n- [#616](https://github.com/victron-venus/inverter-desktop/pull/616) \u2014 chore(deps): update github actions and reusable workflows\n- [#615](https://github.com/victron-venus/inverter-desktop/pull/615) \u2014 fix: enforce Windows and Apple TLS chain key minima\n- [#618](https://github.com/victron-venus/inverter-desktop/pull/618) \u2014 Clarify frontend connection and energy validation phases\n- [#617](https://github.com/victron-venus/inverter-desktop/pull/617) \u2014 fix: preserve native lock intent and show confirmed state\n- [#619](https://github.com/victron-venus/inverter-desktop/pull/619) \u2014 build(deps-dev): bump vite from 8.3.2 to 8.3.3\n- [#620](https://github.com/victron-venus/inverter-desktop/pull/620) \u2014 chore(deps): update github actions and reusable workflows\n- [#621](https://github.com/victron-venus/inverter-desktop/pull/621) \u2014 chore(deps): update github actions and reusable workflows\n- [#622](https://github.com/victron-venus/inverter-desktop/pull/622) \u2014 chore(deps): update github actions and reusable workflows\n- [#631](https://github.com/victron-venus/inverter-desktop/pull/631) \u2014 fix: use HTTP headers for release API status\n- [#625](https://github.com/victron-venus/inverter-desktop/pull/625) \u2014 fix(deps): synchronize desktop updates and prepare 2.5.48\n- [#632](https://github.com/victron-venus/inverter-desktop/pull/632) \u2014 chore(deps): update github actions and reusable workflows\n- [#633](https://github.com/victron-venus/inverter-desktop/pull/633) \u2014 ci: gate release candidates on bounded fuzzing\n- [#634](https://github.com/victron-venus/inverter-desktop/pull/634) \u2014 fix: finish OpenSSF evidence and backport GLib iterator safety\n\n\n\n\n\nAll 46 commits\n\n- [0b702b90bedb](https://github.com/victron-venus/inverter-desktop/commit/0b702b90bedb6f46c2d45bdf7a9986e3b9ecd16e) \u2014 fix: deliver native Victron notification banners over IGW\n- [b0a31a15498a](https://github.com/victron-venus/inverter-desktop/commit/b0a31a15498a589234562aa936baf63bf733d249) \u2014 fix: clear native alarm banners when replacing transport\n- [94009ef2f28b](https://github.com/victron-venus/inverter-desktop/commit/94009ef2f28bb739909f8d930249f193ee0be04e) \u2014 fix(connection): fence delayed events by transport session\n- [ed96696089a3](https://github.com/victron-venus/inverter-desktop/commit/ed96696089a337210be79da0a392808eb6b622f8) \u2014 fix(notifications): preserve event time and refresh banner age\n- [b599e9beb5a2](https://github.com/victron-venus/inverter-desktop/commit/b599e9beb5a2ea71e22048ffa032c9f82b833eec) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#588)\n- [41c3ba0424e5](https://github.com/victron-venus/inverter-desktop/commit/41c3ba0424e5637d9fb6b95bf2848d9b66a2e223) \u2014 chore(deps): update github actions and reusable workflows (#587)\n- [4dbe27167927](https://github.com/victron-venus/inverter-desktop/commit/4dbe2716792735cf13b56243de7dcf6f7510f7a5) \u2014 Merge remote-tracking branch 'origin/main' into codex/review-native-alerts-20261006\n- [fca84e51032f](https://github.com/victron-venus/inverter-desktop/commit/fca84e51032fbd3ac98059a203074880467ce4a3) \u2014 build(deps): bump @tauri-apps/api from 2.12.0 to 2.12.1 (#596)\n- [629f83585139](https://github.com/victron-venus/inverter-desktop/commit/629f83585139a15e67a14c2dac4f8b6f5bcd3283) \u2014 build(deps): consolidate desktop updates and security patches (#594)\n- [02302d8d7f8b](https://github.com/victron-venus/inverter-desktop/commit/02302d8d7f8b844e83ab9b100c9d65f2ca05838f) \u2014 Merge remote-tracking branch 'origin/main' into codex/review-native-alerts-20261006\n- [896cb284213e](https://github.com/victron-venus/inverter-desktop/commit/896cb284213e3d166a12eb68205ee0ecf086ff67) \u2014 Merge pull request #578 from victron-venus/fix/igw-native-alerts-20261004\n- [f8b4b667c640](https://github.com/victron-venus/inverter-desktop/commit/f8b4b667c6408295fc740f20ca44fc6ee9978151) \u2014 fix(mqtt): accept native zero EV SoC after sample throttle\n- [f17bcb7790c7](https://github.com/victron-venus/inverter-desktop/commit/f17bcb7790c792724924040d4a0e7ace27ba31bc) \u2014 Merge pull request #597 from victron-venus/fix/native-ev-zero-soc-20261007\n- [04892e7173ed](https://github.com/victron-venus/inverter-desktop/commit/04892e7173edb5731d03fd8b008fcd6787c669d2) \u2014 build(deps): bump tokio from 1.53.1 to 1.53.2 in /src-tauri\n- [03d38d376352](https://github.com/victron-venus/inverter-desktop/commit/03d38d376352af4cd3143947ea7f8ff661eb6b06) \u2014 build(deps): bump @lucide/vue from 1.50.0 to 1.51.0\n- [9a38dca79093](https://github.com/victron-venus/inverter-desktop/commit/9a38dca7909326088aaa2532540f13723ed32477) \u2014 Merge pull request #598 from victron-venus/dependabot/cargo/src-tauri/tokio-1.53.2\n- [b07351fe235d](https://github.com/victron-venus/inverter-desktop/commit/b07351fe235d5834c7f3c484c4dbcb0555c9fd9d) \u2014 Merge branch 'main' into dependabot/npm_and_yarn/lucide/vue-1.51.0\n- [3ea2236ecdeb](https://github.com/victron-venus/inverter-desktop/commit/3ea2236ecdeb81b8b5a194250c52c11c656d4134) \u2014 Merge pull request #599 from victron-venus/dependabot/npm_and_yarn/lucide/vue-1.51.0\n- [ad7dcb0e75d8](https://github.com/victron-venus/inverter-desktop/commit/ad7dcb0e75d842594e4459393d136cffa1b5159d) \u2014 fix: reject inherited ESS mode aliases (#600)\n- [153bdc0fec03](https://github.com/victron-venus/inverter-desktop/commit/153bdc0fec033d53dfd92b6e9e52ef137a04ba5b) \u2014 chore(deps): update github actions and reusable workflows (#601)\n- [216ea02e679f](https://github.com/victron-venus/inverter-desktop/commit/216ea02e679f5b88268b4636dd1b0c42eaafa0e7) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#602)\n- [74838cf6ae41](https://github.com/victron-venus/inverter-desktop/commit/74838cf6ae41fbf3e961ede40b99fe74f34f7b86) \u2014 ci: request CodeRabbit autofix after completed reviews (#603)\n- [705b6e4a7d33](https://github.com/victron-venus/inverter-desktop/commit/705b6e4a7d33303f5896d08eda9255b9016e5d29) \u2014 build(deps): bump @lucide/vue from 1.51.0 to 1.52.0 (#605)\n- [3005b2bcf5bf](https://github.com/victron-venus/inverter-desktop/commit/3005b2bcf5bf0bf29ea065d5cb3c4a2cc8a4bcbd) \u2014 build(deps-dev): bump jsdom from 29.1.1 to 30.1.2 (#604)\n- [d59e58fb4acb](https://github.com/victron-venus/inverter-desktop/commit/d59e58fb4acb3e28bc788ededdc18fc944b01816) \u2014 Require source-bound release notes and document security process (#606)\n- [9f15af8a499c](https://github.com/victron-venus/inverter-desktop/commit/9f15af8a499c10a9d3f1b198bb974b7de68fb51a) \u2014 Verify Gradle bootstrap before Android builds (#607)\n- [7614a41d124b](https://github.com/victron-venus/inverter-desktop/commit/7614a41d124b1c6c4b777f7832b95f8abd10705f) \u2014 Backport reviewed toolkit validation maintenance (#608)\n- [a88d9e4cd195](https://github.com/victron-venus/inverter-desktop/commit/a88d9e4cd1957bff5be5b81e541d438e8c0cc11d) \u2014 refactor: clarify energy and inventory validation (#609)\n- [c61e80fcde45](https://github.com/victron-venus/inverter-desktop/commit/c61e80fcde4534333d127e0a6d2aaf83a028ca79) \u2014 fix(ui): improve control contrast and simplify frontend flows (#610)\n- [a65b2864ed3a](https://github.com/victron-venus/inverter-desktop/commit/a65b2864ed3add35dc8cdb1f9a4c43167c9990d0) \u2014 fix: keep status announcement regions mounted (#611)\n- [9b59eb226a37](https://github.com/victron-venus/inverter-desktop/commit/9b59eb226a37884d7f26fdbf568b5998add3af26) \u2014 fix(auth): migrate local login passwords to Argon2id verifiers (#612)\n- [3431741d15ba](https://github.com/victron-venus/inverter-desktop/commit/3431741d15bacb9ba1eab1811776ade5a427bf2f) \u2014 test: tighten release failures and preserve build guards (#613)\n- [7d1222455452](https://github.com/victron-venus/inverter-desktop/commit/7d1222455452a0ec5648e9fbe755a11852f8b5ba) \u2014 refactor: isolate native plugin packager build layout (#614)\n- [72b30daabb0a](https://github.com/victron-venus/inverter-desktop/commit/72b30daabb0af10957e42054403b918e0d7c3c91) \u2014 chore(deps): update github actions and reusable workflows (#616)\n- [56d1827d8de5](https://github.com/victron-venus/inverter-desktop/commit/56d1827d8de57d0bc6521f8b85c3089f81de02d7) \u2014 fix: enforce Windows and Apple TLS chain key minima (#615)\n- [fb13b8bc582e](https://github.com/victron-venus/inverter-desktop/commit/fb13b8bc582e4b3311ab1466054601c80e0f3627) \u2014 Clarify frontend connection and energy validation phases (#618)\n- [540106de9224](https://github.com/victron-venus/inverter-desktop/commit/540106de922498fc39814e3638eb6622347b1d93) \u2014 fix: preserve native lock intent and show confirmed state (#617)\n- [7022ac390594](https://github.com/victron-venus/inverter-desktop/commit/7022ac390594e43f66d2c1b910d05f53e3c488ed) \u2014 build(deps-dev): bump vite from 8.3.2 to 8.3.3 (#619)\n- [961193ccd454](https://github.com/victron-venus/inverter-desktop/commit/961193ccd45480c19132b2d2678e08657425c77f) \u2014 chore(deps): update github actions and reusable workflows (#620)\n- [43c48c5f297d](https://github.com/victron-venus/inverter-desktop/commit/43c48c5f297d50d42eec2fd3030ea36b806f1c08) \u2014 chore(deps): update github actions and reusable workflows (#621)\n- [3e2372810eb2](https://github.com/victron-venus/inverter-desktop/commit/3e2372810eb203cb7df9625654fa8336e7840183) \u2014 chore(deps): update github actions and reusable workflows (#622)\n- [7038b3277cb6](https://github.com/victron-venus/inverter-desktop/commit/7038b3277cb607c6f4c89dcd059c8566c3378047) \u2014 fix: use HTTP headers for release API status (#631)\n- [0b04b00ba12f](https://github.com/victron-venus/inverter-desktop/commit/0b04b00ba12f6e6ffdf758c9c001e5c28701ccbd) \u2014 fix(deps): synchronize desktop updates and prepare 2.5.48 (#625)\n- [8c48f5e68b9e](https://github.com/victron-venus/inverter-desktop/commit/8c48f5e68b9e3302cc3c479f02b5dd6cd824d69c) \u2014 chore(deps): update github actions and reusable workflows (#632)\n- [bc3deddc5efc](https://github.com/victron-venus/inverter-desktop/commit/bc3deddc5efc3e5e9a87a442a5edcbc6ae223889) \u2014 ci: gate release candidates on bounded fuzzing (#633)\n- [b13e1432b55f](https://github.com/victron-venus/inverter-desktop/commit/b13e1432b55ff9bd4d060513326b4cb9c2bcac0a) \u2014 fix: finish OpenSSF evidence and backport GLib iterator safety (#634)\n\n\n\n\n\n---\n\n## victron-venus/integration-tests \u2014 v0.1.1\n\n[Published stable release](https://github.com/victron-venus/integration-tests/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n### Added\n\n- RC-only fuzzing of real pure input handlers, with documented synthetic seeds and bounded execution.\n- Reviewed source archives with isolated acceptance, frozen versions, receipts and checksums.\n\n### Upgrade\n\nExtract the new source suite into a separate directory. Preserve local configuration\nand device state. This package does not deploy or install itself on any device.\n\n### Security\n\nThe source suite and test corpus contain no private captures or credentials.\nFuzz campaigns cannot contact devices; actual hardware acceptance is separate.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.1](https://github.com/victron-venus/integration-tests/releases/tag/v0.1.1-rc.1).\n\nSource: `a3f328b0ce2d6788f149f712d6ff343ec695da81`\n\nValidation: https://github.com/victron-venus/integration-tests/actions/runs/38496145723\n\nPromotion: https://github.com/victron-venus/integration-tests/actions/runs/38510803892\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [a3f328b0ce2d](https://github.com/victron-venus/integration-tests/commit/a3f328b0ce2d6788f149f712d6ff343ec695da81).\nPrevious stable source: [9cfa51b873e6](https://github.com/victron-venus/integration-tests/commit/9cfa51b873e61888fbee7ff8fbabc5e43e4d2a5b).\n\n[Full source history](https://github.com/victron-venus/integration-tests/compare/9cfa51b873e61888fbee7ff8fbabc5e43e4d2a5b...a3f328b0ce2d6788f149f712d6ff343ec695da81). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 167 merged pull requests\n\n- [#1](https://github.com/victron-venus/integration-tests/pull/1) \u2014 fix: resolve SonarQube security vulnerabilities\n- [#2](https://github.com/victron-venus/integration-tests/pull/2) \u2014 fix: resolve SonarQube issues\n- [#3](https://github.com/victron-venus/integration-tests/pull/3) \u2014 Update Dockerfile.test-runner\n- [#4](https://github.com/victron-venus/integration-tests/pull/4) \u2014 Update Dockerfile.test-runner\n- [#5](https://github.com/victron-venus/integration-tests/pull/5) \u2014 Update .gitignore\n- [#6](https://github.com/victron-venus/integration-tests/pull/6) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#7](https://github.com/victron-venus/integration-tests/pull/7) \u2014 build(deps): bump github/codeql-action/analyze from c54b30b7df092240050e69945842bc67aee0f0f4 to e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81\n- [#12](https://github.com/victron-venus/integration-tests/pull/12) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-battery\n- [#18](https://github.com/victron-venus/integration-tests/pull/18) \u2014 build(deps): update websockets requirement from &gt;=12.0 to &gt;=16.1.1\n- [#9](https://github.com/victron-venus/integration-tests/pull/9) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-pv\n- [#11](https://github.com/victron-venus/integration-tests/pull/11) \u2014 build(deps): bump github/codeql-action/autobuild from c54b30b7df092240050e69945842bc67aee0f0f4 to e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81\n- [#8](https://github.com/victron-venus/integration-tests/pull/8) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1\n- [#14](https://github.com/victron-venus/integration-tests/pull/14) \u2014 build(deps): bump github/codeql-action/upload-sarif from 3.37.3 to 4.37.3\n- [#13](https://github.com/victron-venus/integration-tests/pull/13) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-dbus\n- [#15](https://github.com/victron-venus/integration-tests/pull/15) \u2014 build(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0\n- [#17](https://github.com/victron-venus/integration-tests/pull/17) \u2014 build(deps): update pytest requirement from &gt;=7.4.0 to &gt;=9.1.1\n- [#10](https://github.com/victron-venus/integration-tests/pull/10) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim\n- [#16](https://github.com/victron-venus/integration-tests/pull/16) \u2014 build(deps): update pytest-asyncio requirement from &gt;=0.21.0 to &gt;=1.4.0\n- [#19](https://github.com/victron-venus/integration-tests/pull/19) \u2014 docs: add MIT license and badges\n- [#20](https://github.com/victron-venus/integration-tests/pull/20) \u2014 Docs/add license and badges\n- [#22](https://github.com/victron-venus/integration-tests/pull/22) \u2014 build(deps): bump github/codeql-action/init from c54b30b7df092240050e69945842bc67aee0f0f4 to e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81\n- [#23](https://github.com/victron-venus/integration-tests/pull/23) \u2014 build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.4\n- [#21](https://github.com/victron-venus/integration-tests/pull/21) \u2014 build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1\n- [#24](https://github.com/victron-venus/integration-tests/pull/24) \u2014 Update README.md\n- [#25](https://github.com/victron-venus/integration-tests/pull/25) \u2014 feat: Multi-dashboard test matrix + HTML test reports\n- [#27](https://github.com/victron-venus/integration-tests/pull/27) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.3 to 4.37.4\n- [#28](https://github.com/victron-venus/integration-tests/pull/28) \u2014 build(deps): update websockets requirement from &gt;=16.1.1 to &gt;=17.0\n- [#31](https://github.com/victron-venus/integration-tests/pull/31) \u2014 feat: multi-dashboard test matrix + HTML test reports\n- [#30](https://github.com/victron-venus/integration-tests/pull/30) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.3 to 4.37.4\n- [#29](https://github.com/victron-venus/integration-tests/pull/29) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.3 to 4.37.4\n- [#26](https://github.com/victron-venus/integration-tests/pull/26) \u2014 build(deps): bump github/codeql-action/init from 4.37.3 to 4.37.4\n- [#32](https://github.com/victron-venus/integration-tests/pull/32) \u2014 build(deps): bump actions/upload-artifact from 4.6.0 to 7.0.1\n- [#33](https://github.com/victron-venus/integration-tests/pull/33) \u2014 build(deps): update websockets requirement from &gt;=17.0 to &gt;=17.0.1\n- [#38](https://github.com/victron-venus/integration-tests/pull/38) \u2014 build(deps): bump github/codeql-action/init from 4.37.4 to 4.37.6\n- [#37](https://github.com/victron-venus/integration-tests/pull/37) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.4 to 4.37.6\n- [#36](https://github.com/victron-venus/integration-tests/pull/36) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.4 to 4.37.6\n- [#35](https://github.com/victron-venus/integration-tests/pull/35) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.4 to 4.37.6\n- [#34](https://github.com/victron-venus/integration-tests/pull/34) \u2014 build(deps): bump step-security/harden-runner from 2.20.0 to 2.20.1\n- [#39](https://github.com/victron-venus/integration-tests/pull/39) \u2014 fix: resolve SonarCloud issues\n- [#40](https://github.com/victron-venus/integration-tests/pull/40) \u2014 fix: resolve 5 SonarQube issues\n- [#43](https://github.com/victron-venus/integration-tests/pull/43) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-battery\n- [#42](https://github.com/victron-venus/integration-tests/pull/42) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-dbus\n- [#41](https://github.com/victron-venus/integration-tests/pull/41) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-pv\n- [#44](https://github.com/victron-venus/integration-tests/pull/44) \u2014 Fix/sonarcloud issues\n- [#45](https://github.com/victron-venus/integration-tests/pull/45) \u2014 Fix/sonarcloud issues\n- [#53](https://github.com/victron-venus/integration-tests/pull/53) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-dbus\n- [#52](https://github.com/victron-venus/integration-tests/pull/52) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-battery\n- [#51](https://github.com/victron-venus/integration-tests/pull/51) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-pv\n- [#50](https://github.com/victron-venus/integration-tests/pull/50) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1\n- [#49](https://github.com/victron-venus/integration-tests/pull/49) \u2014 build(deps): bump softprops/action-gh-release from 2.6.2 to 3.0.2\n- [#56](https://github.com/victron-venus/integration-tests/pull/56) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-dbus\n- [#55](https://github.com/victron-venus/integration-tests/pull/55) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-battery\n- [#54](https://github.com/victron-venus/integration-tests/pull/54) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-pv\n- [#57](https://github.com/victron-venus/integration-tests/pull/57) \u2014 ci: fix GITHUB_TOKEN collisions and invalid permissions\n- [#62](https://github.com/victron-venus/integration-tests/pull/62) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.6 to 4.37.7\n- [#61](https://github.com/victron-venus/integration-tests/pull/61) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.7\n- [#60](https://github.com/victron-venus/integration-tests/pull/60) \u2014 build(deps): bump github/codeql-action/init from 4.37.6 to 4.37.7\n- [#59](https://github.com/victron-venus/integration-tests/pull/59) \u2014 build(deps): bump step-security/harden-runner from 2.20.1 to 2.21.0\n- [#58](https://github.com/victron-venus/integration-tests/pull/58) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.6 to 4.37.7\n- [#63](https://github.com/victron-venus/integration-tests/pull/63) \u2014 ci: allow Node 20 for auto-approve-action compatibility\n- [#64](https://github.com/victron-venus/integration-tests/pull/64) \u2014 ci: bump auto-approve workflow (bots-only revision + forward BOT_PAT)\n- [#65](https://github.com/victron-venus/integration-tests/pull/65) \u2014 ci: bump auto-approve reusable SHA (default authors incl. 4alvit)\n- [#66](https://github.com/victron-venus/integration-tests/pull/66) \u2014 ci: bump venus-os-ci-toolkit pins to description-key fix\n- [#70](https://github.com/victron-venus/integration-tests/pull/70) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.7 to 4.37.8\n- [#69](https://github.com/victron-venus/integration-tests/pull/69) \u2014 build(deps): bump github/codeql-action/init from 4.37.7 to 4.37.8\n- [#68](https://github.com/victron-venus/integration-tests/pull/68) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.7 to 4.37.8\n- [#67](https://github.com/victron-venus/integration-tests/pull/67) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.7 to 4.37.8\n- [#71](https://github.com/victron-venus/integration-tests/pull/71) \u2014 ci: add auto-merge pipeline\n- [#72](https://github.com/victron-venus/integration-tests/pull/72) \u2014 chore: add *.backup to .gitignore\n- [#75](https://github.com/victron-venus/integration-tests/pull/75) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-dbus\n- [#74](https://github.com/victron-venus/integration-tests/pull/74) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-pv\n- [#73](https://github.com/victron-venus/integration-tests/pull/73) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-battery\n- [#76](https://github.com/victron-venus/integration-tests/pull/76) \u2014 Make integration workflow reusable as required CI gate\n- [#81](https://github.com/victron-venus/integration-tests/pull/81) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.8 to 4.37.9\n- [#80](https://github.com/victron-venus/integration-tests/pull/80) \u2014 build(deps): bump github/codeql-action/init from 4.37.8 to 4.37.9\n- [#79](https://github.com/victron-venus/integration-tests/pull/79) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.8 to 4.37.9\n- [#78](https://github.com/victron-venus/integration-tests/pull/78) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.8 to 4.37.9\n- [#77](https://github.com/victron-venus/integration-tests/pull/77) \u2014 build(deps): update websockets requirement from &gt;=17.0.1 to &gt;=17.1\n- [#85](https://github.com/victron-venus/integration-tests/pull/85) \u2014 build(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3\n- [#83](https://github.com/victron-venus/integration-tests/pull/83) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-battery\n- [#84](https://github.com/victron-venus/integration-tests/pull/84) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-dbus\n- [#82](https://github.com/victron-venus/integration-tests/pull/82) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-pv\n- [#86](https://github.com/victron-venus/integration-tests/pull/86) \u2014 build(deps): bump step-security/harden-runner from 2.21.0 to 2.21.1\n- [#89](https://github.com/victron-venus/integration-tests/pull/89) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-battery\n- [#88](https://github.com/victron-venus/integration-tests/pull/88) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-dbus\n- [#87](https://github.com/victron-venus/integration-tests/pull/87) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-pv\n- [#90](https://github.com/victron-venus/integration-tests/pull/90) \u2014 fix: make test_websocket_connection return on healthy sockets\n- [#91](https://github.com/victron-venus/integration-tests/pull/91) \u2014 ci: require real dashboard builds and MQTT propagation\n- [#92](https://github.com/victron-venus/integration-tests/pull/92) \u2014 ci: automate trusted PR approval and native merge\n- [#93](https://github.com/victron-venus/integration-tests/pull/93) \u2014 ci: use corrected check ordering for auto-merge\n- [#94](https://github.com/victron-venus/integration-tests/pull/94) \u2014 ci: refresh dismissed approvals for the current PR head\n- [#95](https://github.com/victron-venus/integration-tests/pull/95) \u2014 ci: add nightly validation and local operations\n- [#96](https://github.com/victron-venus/integration-tests/pull/96) \u2014 Approve trusted PRs without requiring automerge\n- [#100](https://github.com/victron-venus/integration-tests/pull/100) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.9 to 4.38.0\n- [#99](https://github.com/victron-venus/integration-tests/pull/99) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0\n- [#98](https://github.com/victron-venus/integration-tests/pull/98) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.9 to 4.38.0\n- [#97](https://github.com/victron-venus/integration-tests/pull/97) \u2014 build(deps): bump github/codeql-action/init from 4.37.9 to 4.38.0\n- [#102](https://github.com/victron-venus/integration-tests/pull/102) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 3d88973b6ff0d8895f98e608d66c2815a47e5dff to 553cc62049396c2b57d3ea21a480f7a69842d1a4\n- [#101](https://github.com/victron-venus/integration-tests/pull/101) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from b901499a3de99677a709a6853cc70e56f475170a to 553cc62049396c2b57d3ea21a480f7a69842d1a4\n- [#103](https://github.com/victron-venus/integration-tests/pull/103) \u2014 test: qualify Cerbo runs and define shared dashboard contracts\n- [#104](https://github.com/victron-venus/integration-tests/pull/104) \u2014 fix: synchronize websockets dependency lock\n- [#110](https://github.com/victron-venus/integration-tests/pull/110) \u2014 fix: run offline Cerbo qualification plans without a lab runner\n- [#107](https://github.com/victron-venus/integration-tests/pull/107) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.1\n- [#106](https://github.com/victron-venus/integration-tests/pull/106) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 553cc62049396c2b57d3ea21a480f7a69842d1a4 to ddfb0d25a7428cb74e3d30a115b15a3a78e74ddd\n- [#109](https://github.com/victron-venus/integration-tests/pull/109) \u2014 build(deps): bump github/codeql-action/init from 4.38.0 to 4.38.1\n- [#108](https://github.com/victron-venus/integration-tests/pull/108) \u2014 build(deps): bump github/codeql-action/autobuild from 4.38.0 to 4.38.1\n- [#105](https://github.com/victron-venus/integration-tests/pull/105) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 553cc62049396c2b57d3ea21a480f7a69842d1a4 to 7f10b0844b2f6c7bde5029f7d2e1f5ad983e84c5\n- [#112](https://github.com/victron-venus/integration-tests/pull/112) \u2014 ci: keep CodeQL actions on one version\n- [#115](https://github.com/victron-venus/integration-tests/pull/115) \u2014 ci: consolidate validation and enable protected native auto-merge\n- [#113](https://github.com/victron-venus/integration-tests/pull/113) \u2014 build(deps): bump python from 3.12-slim to 3.14-slim\n- [#124](https://github.com/victron-venus/integration-tests/pull/124) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 7f10b0844b2f6c7bde5029f7d2e1f5ad983e84c5 to 222689b49ba3ee2d2606c2e8d0dc853de3ccb220\n- [#123](https://github.com/victron-venus/integration-tests/pull/123) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 186b9463d0d78ef46c7a2ed5313c8866eed46765 to 222689b49ba3ee2d2606c2e8d0dc853de3ccb220\n- [#122](https://github.com/victron-venus/integration-tests/pull/122) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-pv\n- [#121](https://github.com/victron-venus/integration-tests/pull/121) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-dbus\n- [#120](https://github.com/victron-venus/integration-tests/pull/120) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-battery\n- [#128](https://github.com/victron-venus/integration-tests/pull/128) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 222689b49ba3ee2d2606c2e8d0dc853de3ccb220 to 733de629b521477102822ccfcc855427de2f2b08\n- [#127](https://github.com/victron-venus/integration-tests/pull/127) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 222689b49ba3ee2d2606c2e8d0dc853de3ccb220 to 733de629b521477102822ccfcc855427de2f2b08\n- [#129](https://github.com/victron-venus/integration-tests/pull/129) \u2014 build(deps): bump the codeql group with 4 updates\n- [#130](https://github.com/victron-venus/integration-tests/pull/130) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 733de629b521477102822ccfcc855427de2f2b08 to 2eba893e177dbeabc2bf93739334bc4da5dc5ab1\n- [#131](https://github.com/victron-venus/integration-tests/pull/131) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 733de629b521477102822ccfcc855427de2f2b08 to 2eba893e177dbeabc2bf93739334bc4da5dc5ab1\n- [#132](https://github.com/victron-venus/integration-tests/pull/132) \u2014 Reject invalid or mismatched hardware qualification evidence\n- [#134](https://github.com/victron-venus/integration-tests/pull/134) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 2eba893e177dbeabc2bf93739334bc4da5dc5ab1 to 25f56bb98f1cbdb388735c7c2c53e8028993caeb\n- [#133](https://github.com/victron-venus/integration-tests/pull/133) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 2eba893e177dbeabc2bf93739334bc4da5dc5ab1 to 25f56bb98f1cbdb388735c7c2c53e8028993caeb\n- [#138](https://github.com/victron-venus/integration-tests/pull/138) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from 25f56bb98f1cbdb388735c7c2c53e8028993caeb to fadf720a452d216f81c60ee74096febd63c0caec\n- [#137](https://github.com/victron-venus/integration-tests/pull/137) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from 25f56bb98f1cbdb388735c7c2c53e8028993caeb to fadf720a452d216f81c60ee74096febd63c0caec\n- [#142](https://github.com/victron-venus/integration-tests/pull/142) \u2014 ci: request advisory CodeRabbit reviews on new PRs\n- [#141](https://github.com/victron-venus/integration-tests/pull/141) \u2014 fix: align battery and PV mocks with production MQTT contracts\n- [#139](https://github.com/victron-venus/integration-tests/pull/139) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml from fadf720a452d216f81c60ee74096febd63c0caec to fca833a9da6b49116444ffd7ac6739e08f9cbc61\n- [#140](https://github.com/victron-venus/integration-tests/pull/140) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml from fadf720a452d216f81c60ee74096febd63c0caec to fca833a9da6b49116444ffd7ac6739e08f9cbc61\n- [#143](https://github.com/victron-venus/integration-tests/pull/143) \u2014 ci: group workflow dependency updates with Renovate\n- [#144](https://github.com/victron-venus/integration-tests/pull/144) \u2014 chore(deps): update github actions and reusable workflows\n- [#146](https://github.com/victron-venus/integration-tests/pull/146) \u2014 fix: verify container dependency hashes\n- [#147](https://github.com/victron-venus/integration-tests/pull/147) \u2014 chore(deps): update github actions and reusable workflows\n- [#145](https://github.com/victron-venus/integration-tests/pull/145) \u2014 security: harden code-scanning workflows and CI permissions\n- [#148](https://github.com/victron-venus/integration-tests/pull/148) \u2014 chore(deps): update github actions and reusable workflows\n- [#151](https://github.com/victron-venus/integration-tests/pull/151) \u2014 ci: prepare optional runner reserve without enabling it\n- [#150](https://github.com/victron-venus/integration-tests/pull/150) \u2014 chore(deps): update github actions and reusable workflows\n- [#152](https://github.com/victron-venus/integration-tests/pull/152) \u2014 fix(deps): update websockets and enforce runner lock consistency\n- [#149](https://github.com/victron-venus/integration-tests/pull/149) \u2014 build(deps): bump pytest-html from 4.1.1 to 4.2.0\n- [#153](https://github.com/victron-venus/integration-tests/pull/153) \u2014 docs: align battery mock MQTT topic references\n- [#154](https://github.com/victron-venus/integration-tests/pull/154) \u2014 chore(deps): update github actions and reusable workflows\n- [#155](https://github.com/victron-venus/integration-tests/pull/155) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#156](https://github.com/victron-venus/integration-tests/pull/156) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#157](https://github.com/victron-venus/integration-tests/pull/157) \u2014 Establish security and contribution evidence for OpenSSF\n- [#158](https://github.com/victron-venus/integration-tests/pull/158) \u2014 Remove unused legacy Go dashboard image wrapper\n- [#159](https://github.com/victron-venus/integration-tests/pull/159) \u2014 Pin patched uv in Python dashboard integration image\n- [#160](https://github.com/victron-venus/integration-tests/pull/160) \u2014 Simplify workflow graph validation without changing policy\n- [#161](https://github.com/victron-venus/integration-tests/pull/161) \u2014 Clarify workflow assertions and combine image setup steps\n- [#162](https://github.com/victron-venus/integration-tests/pull/162) \u2014 refactor: clarify hardware inventory and evidence validation\n- [#163](https://github.com/victron-venus/integration-tests/pull/163) \u2014 Separate hardware report interpretation from transport\n- [#164](https://github.com/victron-venus/integration-tests/pull/164) \u2014 Cover device execution and restoration with offline lifecycle tests\n- [#166](https://github.com/victron-venus/integration-tests/pull/166) \u2014 Complete device cleanup after MQTT or restoration errors\n- [#165](https://github.com/victron-venus/integration-tests/pull/165) \u2014 Analyze GitHub Actions alongside Python with CodeQL\n- [#167](https://github.com/victron-venus/integration-tests/pull/167) \u2014 Simplify offline device lifecycle adapters\n- [#168](https://github.com/victron-venus/integration-tests/pull/168) \u2014 Separate lab qualification stages and preserve recovery ownership\n- [#169](https://github.com/victron-venus/integration-tests/pull/169) \u2014 Update GitHub Actions and reusable workflows\n- [#170](https://github.com/victron-venus/integration-tests/pull/170) \u2014 Enforce SSH RSA minimum for hardware qualification\n- [#171](https://github.com/victron-venus/integration-tests/pull/171) \u2014 Update GitHub Actions and reusable workflows\n- [#172](https://github.com/victron-venus/integration-tests/pull/172) \u2014 Update GitHub Actions and reusable workflows\n- [#173](https://github.com/victron-venus/integration-tests/pull/173) \u2014 Update GitHub Actions and reusable workflows\n- [#175](https://github.com/victron-venus/integration-tests/pull/175) \u2014 Bind hardware acceptance to exact release payloads\n- [#176](https://github.com/victron-venus/integration-tests/pull/176) \u2014 fix: bound decompressed release archive metadata\n- [#174](https://github.com/victron-venus/integration-tests/pull/174) \u2014 Update GitHub Actions and reusable workflows\n- [#177](https://github.com/victron-venus/integration-tests/pull/177) \u2014 fix(ci): align Scorecard completeness guard with pinned action\n- [#178](https://github.com/victron-venus/integration-tests/pull/178) \u2014 Update GitHub Actions and reusable workflows\n- [#179](https://github.com/victron-venus/integration-tests/pull/179) \u2014 build(deps): bump python from `0741d10` to `a2b82f3`\n- [#180](https://github.com/victron-venus/integration-tests/pull/180) \u2014 feat: qualify offline source releases with RC-only fuzzing\n\n\n\n\n\nAll 212 commits\n\n- [e89adbaff961](https://github.com/victron-venus/integration-tests/commit/e89adbaff961ee9a0dc6a7453e9ab801687eb7fa) \u2014 fix: skip WebSocket test when dashboard unavailable, add pylint config\n- [261c37fa125f](https://github.com/victron-venus/integration-tests/commit/261c37fa125f2c1def7bfadb1da9efb28a852852) \u2014 fix: re-raise OSError in WebSocketClient.connect() so test can skip\n- [6867934bbcfc](https://github.com/victron-venus/integration-tests/commit/6867934bbcfc2dff3395d90dd7f368ba6b818ef4) \u2014 Fixes for dockerfile\n- [adafa04d1028](https://github.com/victron-venus/integration-tests/commit/adafa04d102802ee786d2bcd7cd60a7bcf4b4ba6) \u2014 fix: resolve SonarQube security vulnerabilities\n- [0155c3ed5c78](https://github.com/victron-venus/integration-tests/commit/0155c3ed5c78dc65b380d982425f33ca4df12793) \u2014 fix: resolve CI ghcr.io auth failure, entrypoint permissions, and skipif bug\n- [793ac6537f2d](https://github.com/victron-venus/integration-tests/commit/793ac6537f2d4888d0c5e04d2b606e11f119e816) \u2014 Merge pull request #1 from victron-venus/fix/sonarqube-vulnerabilities\n- [61f4767dc6a2](https://github.com/victron-venus/integration-tests/commit/61f4767dc6a291dacaca888397b7a523e1e7a886) \u2014 fix: resolve remaining SonarQube Docker security and code smell issues\n- [cecce6f78d67](https://github.com/victron-venus/integration-tests/commit/cecce6f78d677708bd73ba50a6b82b8a2fc0d578) \u2014 Scheduling integration tests on cron\n- [03a2e68f466a](https://github.com/victron-venus/integration-tests/commit/03a2e68f466a33f8300c02b5ef6badc0c4bd64ca) \u2014 Report Status Summary\n- [dc2fab32bcfe](https://github.com/victron-venus/integration-tests/commit/dc2fab32bcfec6d06ea1e426ec3b4f3fe11f082f) \u2014 fix: resolve SonarQube issues\n- [d91308d29bfa](https://github.com/victron-venus/integration-tests/commit/d91308d29bfac41f6e9f524e2e65f22b7411c9d0) \u2014 Merge pull request #2 from victron-venus/fix/sonarqube-issues-2024-07-24\n- [e13759021f39](https://github.com/victron-venus/integration-tests/commit/e13759021f39f34e62854d8e09509b93e5330815) \u2014 Update Dockerfile.test-runner\n- [fcfcac9bc260](https://github.com/victron-venus/integration-tests/commit/fcfcac9bc260887187ae3ec10a5faedebee283cd) \u2014 fix: grant appuser ownership of /app in test-runner image\n- [ffc498fb6a8a](https://github.com/victron-venus/integration-tests/commit/ffc498fb6a8a39e9def2f761d432241a3f8e0b1f) \u2014 Update Dockerfile.test-runner\n- [0c4890ea1aca](https://github.com/victron-venus/integration-tests/commit/0c4890ea1aca1d27e513868ceb7d0de9855a1f51) \u2014 Merge branch 'fix/sonarqube-issues-2024-07-24' of github.com:victron-venus/integration-tests into fix/sonarqube-issues-2024-07-24\n- [695918408424](https://github.com/victron-venus/integration-tests/commit/69591840842407dde132c884364c9014b7112d3d) \u2014 Merge pull request #3 from victron-venus/fix/sonarqube-issues-2024-07-24\n- [5a249d11cfa1](https://github.com/victron-venus/integration-tests/commit/5a249d11cfa12d4012df57a9fb2be380aa45cdfa) \u2014 Update Dockerfile.test-runner\n- [9bdce919924a](https://github.com/victron-venus/integration-tests/commit/9bdce919924aca77735d653bb4e29e9ac10ecc9d) \u2014 ci: add CodeQL code scanning workflow\n- [59e3cbb88857](https://github.com/victron-venus/integration-tests/commit/59e3cbb88857a57b2ad45124b0472e6a0407b51f) \u2014 Merge pull request #4 from victron-venus/fix/sonarqube-issues-2024-07-24\n- [052f18005cd9](https://github.com/victron-venus/integration-tests/commit/052f18005cd9ecba10393e10efd288718ac03cbe) \u2014 Update .gitignore\n- [04960cbc7aa7](https://github.com/victron-venus/integration-tests/commit/04960cbc7aa7bc3159506ede7ae38742a5727c30) \u2014 fix: prevent non-root user from modifying copied mock service scripts\n- [cc83a4a63c23](https://github.com/victron-venus/integration-tests/commit/cc83a4a63c23e22a31b8cfbe6aca517734f6c8a4) \u2014 Merge pull request #5 from victron-venus/fix/sonarqube-issues-2024-07-24\n- [6d9c33f3b802](https://github.com/victron-venus/integration-tests/commit/6d9c33f3b802b7760eb8f2794a6ad41e67e82b2d) \u2014 \\[StepSecurity\\] Apply security best practices\n- [1a8a48af3986](https://github.com/victron-venus/integration-tests/commit/1a8a48af39864713c8aa9fd5eea75fa02f55f984) \u2014 Merge pull request #6 from step-security-bot/chore/GHA-250318-stepsecurity-remediation\n- [b3a8c3b8a323](https://github.com/victron-venus/integration-tests/commit/b3a8c3b8a323195c473e6c770ffcbf7e48850f55) \u2014 build(deps): bump github/codeql-action/analyze (#7)\n- [2b30b3228284](https://github.com/victron-venus/integration-tests/commit/2b30b32282849af901f6dfebbc01ccb1f5e7a6be) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-battery (#12)\n- [0c4df782cc37](https://github.com/victron-venus/integration-tests/commit/0c4df782cc37f29ed0c4f5d6245f9f5c354b29be) \u2014 build(deps): update websockets requirement from &gt;=12.0 to &gt;=16.1.1 (#18)\n- [7dca5d8130c1](https://github.com/victron-venus/integration-tests/commit/7dca5d8130c1fd1198d1b626e2738653304570d9) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-pv (#9)\n- [c9558cb7250c](https://github.com/victron-venus/integration-tests/commit/c9558cb7250c031e667966cf0172363a2b7357ed) \u2014 build(deps): bump github/codeql-action/autobuild (#11)\n- [a2118521cb86](https://github.com/victron-venus/integration-tests/commit/a2118521cb869c3d0b9b8f42acfde0e256683728) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#8)\n- [107843cbe808](https://github.com/victron-venus/integration-tests/commit/107843cbe8081cf851ece0ce737df0768fe9e944) \u2014 build(deps): bump github/codeql-action/upload-sarif (#14)\n- [a6e6dba8f230](https://github.com/victron-venus/integration-tests/commit/a6e6dba8f230a41f3214220d8c131717eaf40238) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim in /mock-dbus (#13)\n- [2bcc7da9b00f](https://github.com/victron-venus/integration-tests/commit/2bcc7da9b00fb9fee0809c1507edf62b8f7bbf37) \u2014 build(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 (#15)\n- [2dd809de25cc](https://github.com/victron-venus/integration-tests/commit/2dd809de25ccb179304258516e65db13876b602b) \u2014 build(deps): update pytest requirement from &gt;=7.4.0 to &gt;=9.1.1 (#17)\n- [965857945565](https://github.com/victron-venus/integration-tests/commit/96585794556540de053d1a285df225e741a8fe50) \u2014 build(deps): bump python from 3.11-slim to 3.14-slim (#10)\n- [f6fb90331862](https://github.com/victron-venus/integration-tests/commit/f6fb903318624b877166af18f8d46b7896cd90ae) \u2014 build(deps): update pytest-asyncio requirement from &gt;=0.21.0 to &gt;=1.4.0 (#16)\n- [e34191cfa1d4](https://github.com/victron-venus/integration-tests/commit/e34191cfa1d4054e75ba5c53b5d453708ab60656) \u2014 docs: add MIT license and badges\n- [d94b1f5abaef](https://github.com/victron-venus/integration-tests/commit/d94b1f5abaef317afc1559e183017aa294840016) \u2014 Merge pull request #19 from victron-venus/docs/add-license-and-badges\n- [929c899a019e](https://github.com/victron-venus/integration-tests/commit/929c899a019ed7905cd4aefa6969d7886bcee89a) \u2014 Create .sonarcloud.properties\n- [2be033208833](https://github.com/victron-venus/integration-tests/commit/2be0332088333c3a8865b730f0ce1d41593c5f6e) \u2014 Update Dockerfile.test-runner\n- [057a7f95c81a](https://github.com/victron-venus/integration-tests/commit/057a7f95c81a2d88a32ea25bc2e6fc836172db20) \u2014 chore: apply best-practice fixes across repo\n- [666baff5aa90](https://github.com/victron-venus/integration-tests/commit/666baff5aa908b940b42a30c9e35f7d132fe788a) \u2014 Merge branch 'main' into docs/add-license-and-badges\n- [0e7394ccfe12](https://github.com/victron-venus/integration-tests/commit/0e7394ccfe126e3de9adffb6b16e8e0b5c21c419) \u2014 Merge pull request #20 from victron-venus/docs/add-license-and-badges\n- [2a5027232a42](https://github.com/victron-venus/integration-tests/commit/2a5027232a422571cbdf96688609d9d6026fb7af) \u2014 build(deps): bump github/codeql-action/init (#22)\n- [a94c67c1ada1](https://github.com/victron-venus/integration-tests/commit/a94c67c1ada15637dd1f1639b11a7925aeb0fb1b) \u2014 build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.4 (#23)\n- [bfd9004b8a32](https://github.com/victron-venus/integration-tests/commit/bfd9004b8a32b6ab1f6804f6bfc80eeaeeaf7b3f) \u2014 build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#21)\n- [0843979fcb74](https://github.com/victron-venus/integration-tests/commit/0843979fcb74d3faa337b3c1844e41f3eb942ff4) \u2014 Update README.md\n- [7926ecb5b5d4](https://github.com/victron-venus/integration-tests/commit/7926ecb5b5d4d6dee67f473f15fc61b7081f6ccf) \u2014 Merge pull request #24 from victron-venus/docs/add-license-and-badges\n- [0cbcd31e007b](https://github.com/victron-venus/integration-tests/commit/0cbcd31e007b38f7f39c95ddc5226df70fb0f310) \u2014 feat: Multi-dashboard test matrix + HTML test reports\n- [225b130e80bc](https://github.com/victron-venus/integration-tests/commit/225b130e80bcf3d3eb7597dd167bb20437bfc4b8) \u2014 feat: Multi-dashboard test matrix + HTML test reports (#25)\n- [b2e96977d847](https://github.com/victron-venus/integration-tests/commit/b2e96977d847d6d69eebc99203d90246935841dd) \u2014 build(deps): bump github/codeql-action/upload-sarif (#27)\n- [e991212efede](https://github.com/victron-venus/integration-tests/commit/e991212efede523571eadd0e05697389f5c8d9f6) \u2014 build(deps): update websockets requirement from &gt;=16.1.1 to &gt;=17.0 (#28)\n- [ef1696a0c2cc](https://github.com/victron-venus/integration-tests/commit/ef1696a0c2cc71eda6800bb7d59c7bd8c68603fb) \u2014 Update integration.yml\n- [131081c7b61a](https://github.com/victron-venus/integration-tests/commit/131081c7b61a0bd62919814d91555805486b1036) \u2014 Update Dockerfile.test-runner\n- [e75c030dd68c](https://github.com/victron-venus/integration-tests/commit/e75c030dd68c693b60d1eb3688272d17546337e8) \u2014 Merge branch 'main' into feat/multi-dashboard-test-matrix-html-reports\n- [504be829f9a2](https://github.com/victron-venus/integration-tests/commit/504be829f9a20df087064b63917da814ddd611d1) \u2014 fix: correct invalid SHA pin for actions/upload-artifact@v4.6.0\n- [aee92b2d38a8](https://github.com/victron-venus/integration-tests/commit/aee92b2d38a8a2bf129d37c1b330bc87101eceb5) \u2014 Merge branch 'feat/multi-dashboard-test-matrix-html-reports' of https://github.com/victron-venus/integration-tests into feat/multi-dashboard-test-matrix-html-reports\n- [38b3b2e9a772](https://github.com/victron-venus/integration-tests/commit/38b3b2e9a772856f4b715ed89e2af55dbaa7b35f) \u2014 Merge pull request #31 from victron-venus/feat/multi-dashboard-test-matrix-html-reports\n- [1f1e1c5e8c3b](https://github.com/victron-venus/integration-tests/commit/1f1e1c5e8c3b3dd58368b31eda3e8d9c9879d06d) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.3 to 4.37.4 (#30)\n- [70eb26601bc6](https://github.com/victron-venus/integration-tests/commit/70eb26601bc67266d28ba3b24083011b1d1137de) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.3 to 4.37.4 (#29)\n- [f44dc1ff9f72](https://github.com/victron-venus/integration-tests/commit/f44dc1ff9f72c895852bc8687e78499f193fab3e) \u2014 build(deps): bump github/codeql-action/init from 4.37.3 to 4.37.4 (#26)\n- [a338651bbed2](https://github.com/victron-venus/integration-tests/commit/a338651bbed2270de62c43567e2d4ad81b5d5743) \u2014 build(deps): bump actions/upload-artifact from 4.6.0 to 7.0.1 (#32)\n- [3b9f15022a45](https://github.com/victron-venus/integration-tests/commit/3b9f15022a457e46f99dc7e4c7a6e04081321622) \u2014 build(deps): update websockets requirement from &gt;=17.0 to &gt;=17.0.1 (#33)\n- [feac6e2bf93f](https://github.com/victron-venus/integration-tests/commit/feac6e2bf93fce0701811a9c0ac10066ff4265bb) \u2014 build(deps): bump github/codeql-action/init from 4.37.4 to 4.37.6 (#38)\n- [df411709e0bc](https://github.com/victron-venus/integration-tests/commit/df411709e0bcc0d4c2a3f017a43641688fc97699) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.4 to 4.37.6 (#37)\n- [890701c06f0b](https://github.com/victron-venus/integration-tests/commit/890701c06f0b2d7d3427e1323b4b15ab3bacb30d) \u2014 build(deps): bump github/codeql-action/upload-sarif (#36)\n- [5bdc7f2934fa](https://github.com/victron-venus/integration-tests/commit/5bdc7f2934fabd9e0ac5c305cf001849f58a3b55) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.4 to 4.37.6 (#35)\n- [c3ea2569d752](https://github.com/victron-venus/integration-tests/commit/c3ea2569d7523aed785187ea504e71f6e858f44e) \u2014 build(deps): bump step-security/harden-runner from 2.20.0 to 2.20.1 (#34)\n- [f4332fccea6d](https://github.com/victron-venus/integration-tests/commit/f4332fccea6d2f24a1558b98f52f80dba8dd72ba) \u2014 fix: resolve SonarCloud issues (#39)\n- [ca27f4a50a3d](https://github.com/victron-venus/integration-tests/commit/ca27f4a50a3d760dffa4996f24c89830f3e1f179) \u2014 fix: resolve 5 SonarQube issues in integration-tests (#40)\n- [6eecf7e3de07](https://github.com/victron-venus/integration-tests/commit/6eecf7e3de0703345170ef3afdc4bf584e7d869e) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-battery (#43)\n- [134384250b5b](https://github.com/victron-venus/integration-tests/commit/134384250b5b399a2ba4082947e9beda2efd5ec0) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-dbus (#42)\n- [2025a832bdac](https://github.com/victron-venus/integration-tests/commit/2025a832bdac954a1c38e27de190ded343068df4) \u2014 build(deps): bump python from `cea0e60` to `3a9d2dd` in /mock-pv (#41)\n- [5986c022726b](https://github.com/victron-venus/integration-tests/commit/5986c022726bd425507954529a678addfad835c8) \u2014 Fix/sonarcloud issues (#44)\n- [5619a3f50353](https://github.com/victron-venus/integration-tests/commit/5619a3f50353c653b3351d5eec623a682f48b0e1) \u2014 Fix/sonarcloud issues (#45)\n- [0bd435ab8ca1](https://github.com/victron-venus/integration-tests/commit/0bd435ab8ca1c9fbd3b9ed449fe47c99d7e4099f) \u2014 fix: resolve SonarCloud issues\n- [ee6c79ab2fb2](https://github.com/victron-venus/integration-tests/commit/ee6c79ab2fb2c1716b83af42ba35ecc93c9e0c49) \u2014 chore: pin GitHub Actions to full commit SHA (supply-chain safety)\n- [fac17f027b3b](https://github.com/victron-venus/integration-tests/commit/fac17f027b3bc534a619891686d50c534aeb166e) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-dbus (#53)\n- [2529f4bbed69](https://github.com/victron-venus/integration-tests/commit/2529f4bbed69faaf0a2c3ab754045bc4ac96967a) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-battery (#52)\n- [327069adc6e8](https://github.com/victron-venus/integration-tests/commit/327069adc6e81a359e4cb9def389c0f9a60ad6d6) \u2014 build(deps): bump python from `cea0e60` to `297cf11` in /mock-pv (#51)\n- [13ecd69bf717](https://github.com/victron-venus/integration-tests/commit/13ecd69bf7177664c84b9ff1f7fef531b319e1ad) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#50)\n- [74150c267e29](https://github.com/victron-venus/integration-tests/commit/74150c267e29e1051d8f4562e638345f4df32aad) \u2014 build(deps): bump softprops/action-gh-release from 2.6.2 to 3.0.2 (#49)\n- [432cdd01f01e](https://github.com/victron-venus/integration-tests/commit/432cdd01f01eadabcfa7428308fb6e32d71c8547) \u2014 Create .mcp.json\n- [eb68b2b23721](https://github.com/victron-venus/integration-tests/commit/eb68b2b23721435476486f668ce0a735b3512e94) \u2014 Update auto-approve.yml\n- [4e965fbc5101](https://github.com/victron-venus/integration-tests/commit/4e965fbc510190001719a45fd239d777da6935da) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-dbus (#56)\n- [b29d6b513497](https://github.com/victron-venus/integration-tests/commit/b29d6b5134973f93c5872ee96f7c6e3f14c11e2c) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-battery (#55)\n- [ff4b7defbb7f](https://github.com/victron-venus/integration-tests/commit/ff4b7defbb7f049943ee68d7e90f956183510873) \u2014 build(deps): bump python from `297cf11` to `4fad234` in /mock-pv (#54)\n- [1f9141239abe](https://github.com/victron-venus/integration-tests/commit/1f9141239abea20a622e81834eb8b9db37ebef62) \u2014 Update uv.lock\n- [223e559cf7ca](https://github.com/victron-venus/integration-tests/commit/223e559cf7ca85ffc8db6297b3c325be4697cb3f) \u2014 ci: fix workflow GITHUB_TOKEN and invalid permissions\n- [2733729dedfd](https://github.com/victron-venus/integration-tests/commit/2733729dedfd9338958a76d40101bc1dc6ce5908) \u2014 ci: use shared reusable auto-approve workflow from toolkit\n- [9374621082e9](https://github.com/victron-venus/integration-tests/commit/9374621082e9ae1d48dcd160a70bad901f2964c6) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.6 to 4.37.7 (#62)\n- [6c139f45f2d8](https://github.com/victron-venus/integration-tests/commit/6c139f45f2d8dd4ef647c41682f9ca14dd227237) \u2014 build(deps): bump github/codeql-action/upload-sarif (#61)\n- [57d7d749185d](https://github.com/victron-venus/integration-tests/commit/57d7d749185d9114a801be604aeb98df2f903d5d) \u2014 build(deps): bump github/codeql-action/init from 4.37.6 to 4.37.7 (#60)\n- [d966e56e25b6](https://github.com/victron-venus/integration-tests/commit/d966e56e25b6af93f184a91b37940e269cbc5915) \u2014 build(deps): bump step-security/harden-runner from 2.20.1 to 2.21.0 (#59)\n- [43cead91cacb](https://github.com/victron-venus/integration-tests/commit/43cead91cacb6adee65f77b0b6e6fa630111ec5b) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.6 to 4.37.7 (#58)\n- [ae198d296642](https://github.com/victron-venus/integration-tests/commit/ae198d2966422455877a2c1645156ebcff69e113) \u2014 ci: allow Node 20 for auto-approve-action compatibility\n- [ce1daa74c4dc](https://github.com/victron-venus/integration-tests/commit/ce1daa74c4dc62be64690899f5812f4bb40765c4) \u2014 Merge pull request #63 from victron-venus/ci-fix\n- [b2c24924ba64](https://github.com/victron-venus/integration-tests/commit/b2c24924ba64bb2e6bc1bb4e7793ccba2fdd7f81) \u2014 ci: use BOT_PAT secret for auto-approve workflows\n- [d8cdec479222](https://github.com/victron-venus/integration-tests/commit/d8cdec479222485b02b40be21adf76ccc2a52c86) \u2014 chore: revert auto-approve workflow to use reusable workflow with GITHUB_TOKEN\n- [ab09df0a76aa](https://github.com/victron-venus/integration-tests/commit/ab09df0a76aacb9a8951601c17030590874fb8a3) \u2014 ci: bump auto-approve reusable workflow SHA, drop unused inputs\n- [fc405492c7da](https://github.com/victron-venus/integration-tests/commit/fc405492c7da7df40a4942f20752ebab7aa430ee) \u2014 ci: bump auto-approve reusable workflow SHA (fromJSON author filter)\n- [a7a197762f19](https://github.com/victron-venus/integration-tests/commit/a7a197762f198143822358456df893391783e8c2) \u2014 ci: bump auto-approve reusable workflow to bots-only revision\n- [55bbeb164bc2](https://github.com/victron-venus/integration-tests/commit/55bbeb164bc257680bb069fd0b7eb904c5e0739e) \u2014 Merge pull request #64 from victron-venus/ci/auto-approve-bump\n- [73e724ac0714](https://github.com/victron-venus/integration-tests/commit/73e724ac0714ecf1af188fcff32956f67c5b034c) \u2014 ci: bump auto-approve reusable SHA (default authors incl. 4alvit) (#65)\n- [b79b754c59c6](https://github.com/victron-venus/integration-tests/commit/b79b754c59c6a40f51ad06e7b74162e3d42a5898) \u2014 ci: bump venus-os-ci-toolkit pins to description-key fix (#66)\n- [f76715970ea2](https://github.com/victron-venus/integration-tests/commit/f76715970ea2782f468171f4800fb28725f39380) \u2014 chore(ci): bump auto-approve reusable workflow pin to 23d5d85\n- [94eb612429e9](https://github.com/victron-venus/integration-tests/commit/94eb612429e9085a4b87a0452500420b35739187) \u2014 fix(ci): repair mangled workflow ref in auto-approve.yml\n- [6be9a857ddb5](https://github.com/victron-venus/integration-tests/commit/6be9a857ddb5591bb2f04d29a89dcdbba7a5a4a1) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.7 to 4.37.8 (#70)\n- [845735af874b](https://github.com/victron-venus/integration-tests/commit/845735af874bd6f0a01113f96569868dddfe6221) \u2014 build(deps): bump github/codeql-action/init from 4.37.7 to 4.37.8 (#69)\n- [1a3c848cad5c](https://github.com/victron-venus/integration-tests/commit/1a3c848cad5cb561d367181fdad9c1d8807bdc6d) \u2014 build(deps): bump github/codeql-action/upload-sarif (#68)\n- [f080aa55bd00](https://github.com/victron-venus/integration-tests/commit/f080aa55bd00d4fcf914e1953c10bf6a87ed064b) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.7 to 4.37.8 (#67)\n- [a5a9c6cef654](https://github.com/victron-venus/integration-tests/commit/a5a9c6cef654fb6cec8ee900c1e284817434c360) \u2014 ci: add auto-merge pipeline (#71)\n- [1b1ee8754121](https://github.com/victron-venus/integration-tests/commit/1b1ee875412105309e238ff8bf075659e45813d7) \u2014 chore: add *.backup to .gitignore (#72)\n- [005c5f6a1ea9](https://github.com/victron-venus/integration-tests/commit/005c5f6a1ea9c33e1edce8c35229bc542ecc28ae) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-dbus (#75)\n- [56725d22e845](https://github.com/victron-venus/integration-tests/commit/56725d22e84599f2a719d483f7f1163560436925) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-pv (#74)\n- [2fc902080846](https://github.com/victron-venus/integration-tests/commit/2fc902080846de9a42867518f53217992f851b5e) \u2014 build(deps): bump python from `4fad234` to `b0aed0e` in /mock-battery (#73)\n- [f991eda9118a](https://github.com/victron-venus/integration-tests/commit/f991eda9118aac9f9a8b21c6f14a547132073cf6) \u2014 Make integration workflow reusable via workflow_call, add junit/logs artifacts (#76)\n- [3a23264df9d3](https://github.com/victron-venus/integration-tests/commit/3a23264df9d3427c779459ee844b2eb23531721d) \u2014 build(deps): bump github/codeql-action/upload-sarif (#81)\n- [9ade13388db5](https://github.com/victron-venus/integration-tests/commit/9ade13388db5104e94df031f9e258ff0e25ef940) \u2014 build(deps): bump github/codeql-action/init from 4.37.8 to 4.37.9 (#80)\n- [b0ffb17b7650](https://github.com/victron-venus/integration-tests/commit/b0ffb17b765039b5ef16d5196cb558aae753b7d2) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.8 to 4.37.9 (#79)\n- [2e96f3a8525c](https://github.com/victron-venus/integration-tests/commit/2e96f3a8525cd52841dfc8c4a88964f500aca4a4) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.8 to 4.37.9 (#78)\n- [61aee5f6019e](https://github.com/victron-venus/integration-tests/commit/61aee5f6019e3bf5bed7104d8d9eb8f4318cede2) \u2014 build(deps): update websockets requirement from &gt;=17.0.1 to &gt;=17.1 (#77)\n- [1b1b8647df10](https://github.com/victron-venus/integration-tests/commit/1b1b8647df10af2c60c2519e8d634bd9c0eb3594) \u2014 build(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3 (#85)\n- [a632f887e08b](https://github.com/victron-venus/integration-tests/commit/a632f887e08b140e28a3f01fa288074ada746668) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-battery (#83)\n- [b2fc8edd97bc](https://github.com/victron-venus/integration-tests/commit/b2fc8edd97bcb57178589a2266e5d04d26d48404) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-dbus (#84)\n- [85836c4f500a](https://github.com/victron-venus/integration-tests/commit/85836c4f500a09ecb5eb5ba1af71bf719769cceb) \u2014 build(deps): bump python from `b0aed0e` to `8edbf9e` in /mock-pv (#82)\n- [16f60dde4132](https://github.com/victron-venus/integration-tests/commit/16f60dde41326c688abb402449d783ac65502ea2) \u2014 build(deps): bump step-security/harden-runner from 2.21.0 to 2.21.1 (#86)\n- [a10f96b377dd](https://github.com/victron-venus/integration-tests/commit/a10f96b377dd1ae5a95a5836232ec551f70700ab) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-battery (#89)\n- [9c562578adc0](https://github.com/victron-venus/integration-tests/commit/9c562578adc06179ad3e433140ceeba634d494d8) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-dbus (#88)\n- [9f78c2593337](https://github.com/victron-venus/integration-tests/commit/9f78c259333778a183692b8476cb0458d03d3c7a) \u2014 build(deps): bump python from `8edbf9e` to `e06cc11` in /mock-pv (#87)\n- [4226a0a9a1c3](https://github.com/victron-venus/integration-tests/commit/4226a0a9a1c3d07f24c792d6f07d313ce7235b28) \u2014 fix: make test_websocket_connection return on healthy sockets (#90)\n- [58ea941a973a](https://github.com/victron-venus/integration-tests/commit/58ea941a973ab19f470be0b210b5c97e1cf496cf) \u2014 ci: require real dashboard builds and MQTT propagation (#91)\n- [63b1c96938aa](https://github.com/victron-venus/integration-tests/commit/63b1c96938aa4766f645934c50b7c4a6653a14e3) \u2014 ci: automate trusted PR approval and native merge (#92)\n- [13ce217f7386](https://github.com/victron-venus/integration-tests/commit/13ce217f738658a486e897d90c4a04f550848647) \u2014 ci: use corrected check ordering for auto-merge (#93)\n- [dc18d221c287](https://github.com/victron-venus/integration-tests/commit/dc18d221c287d5f39513264d427b84b97a7db6c9) \u2014 ci: refresh dismissed approvals for the current PR head (#94)\n- [6ef7c6404e54](https://github.com/victron-venus/integration-tests/commit/6ef7c6404e5414e1f50343e9e4cd38d766f28e57) \u2014 ci: add nightly validation and local operations (#95)\n- [29cf6a5516df](https://github.com/victron-venus/integration-tests/commit/29cf6a5516df3ceec7f98758581f8b48a9d0055f) \u2014 Approve trusted PRs without requiring automerge (#96)\n- [dbb4c7eccbd9](https://github.com/victron-venus/integration-tests/commit/dbb4c7eccbd98bcfaf456194b6c6a9c2bfc37139) \u2014 build(deps): bump github/codeql-action/analyze from 4.37.9 to 4.38.0 (#100)\n- [034a94ce67c5](https://github.com/victron-venus/integration-tests/commit/034a94ce67c5dc310e7712adf905576f0ce17dc9) \u2014 build(deps): bump github/codeql-action/upload-sarif (#99)\n- [ed2be00f11f2](https://github.com/victron-venus/integration-tests/commit/ed2be00f11f268364e4dcbbdb143a2826b6d209c) \u2014 build(deps): bump github/codeql-action/autobuild from 4.37.9 to 4.38.0 (#98)\n- [bc06873a414e](https://github.com/victron-venus/integration-tests/commit/bc06873a414e6f8668f44e69bd26e35c7807839e) \u2014 build(deps): bump github/codeql-action/init from 4.37.9 to 4.38.0 (#97)\n- [c8633ec3eede](https://github.com/victron-venus/integration-tests/commit/c8633ec3eede12f310894535e682f6fe1ba8ca77) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#102)\n- [910a27eac1ca](https://github.com/victron-venus/integration-tests/commit/910a27eac1ca1286c47cf52049054dfd4c22dcd3) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#101)\n- [a893195d3f9f](https://github.com/victron-venus/integration-tests/commit/a893195d3f9f4872228e92171839a2a32c669054) \u2014 test: qualify Cerbo runs and define shared dashboard contracts (#103)\n- [0ff33c368475](https://github.com/victron-venus/integration-tests/commit/0ff33c3684758447b893e60f280a6703d2060eda) \u2014 fix: sync websockets lock with dependency manifest (#104)\n- [5d189f1f5522](https://github.com/victron-venus/integration-tests/commit/5d189f1f55220dba635a0676fa000f1730eb8b4a) \u2014 fix: run offline Cerbo qualification plans without a lab runner (#110)\n- [65b5bd19c5e8](https://github.com/victron-venus/integration-tests/commit/65b5bd19c5e824753c0b4ec39dfe510898b02ada) \u2014 build(deps): bump github/codeql-action/upload-sarif (#107)\n- [84ca40d2cd5f](https://github.com/victron-venus/integration-tests/commit/84ca40d2cd5fc07808816b9129e7d39c9a02c1ef) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#106)\n- [fc17019ef194](https://github.com/victron-venus/integration-tests/commit/fc17019ef194a42e0271efbab0d9aeb58861d7af) \u2014 build(deps): bump github/codeql-action/init from 4.38.0 to 4.38.1 (#109)\n- [e3b3ae3582ba](https://github.com/victron-venus/integration-tests/commit/e3b3ae3582baa45350bf3930d70ea9f165166b73) \u2014 build(deps): bump github/codeql-action/autobuild from 4.38.0 to 4.38.1 (#108)\n- [cf56a6118f17](https://github.com/victron-venus/integration-tests/commit/cf56a6118f17f4056c370c2c5c75d6ee6e5da771) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#105)\n- [a8e334ffb2cd](https://github.com/victron-venus/integration-tests/commit/a8e334ffb2cdfb58f286d35f299fdc2f48ba17a3) \u2014 ci: keep CodeQL actions on one version (#112)\n- [f9b984cb6a06](https://github.com/victron-venus/integration-tests/commit/f9b984cb6a06359d051b082d8182ac9513a5b7aa) \u2014 ci: consolidate required validation and use protected native auto-merge (#115)\n- [24545217999d](https://github.com/victron-venus/integration-tests/commit/24545217999d49623da11f8626ad1e176abf8887) \u2014 build(deps): bump python from 3.12-slim to 3.14-slim (#113)\n- [58923e2c1332](https://github.com/victron-venus/integration-tests/commit/58923e2c13327dc112f96258cff19a726cf55e1f) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#124)\n- [435359421513](https://github.com/victron-venus/integration-tests/commit/43535942151349a08fadce76f9d7f6a40b7c15b5) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#123)\n- [16c74eb8ab03](https://github.com/victron-venus/integration-tests/commit/16c74eb8ab0319036ab8a154d3074908062ffb60) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-pv (#122)\n- [b2db7a4b709f](https://github.com/victron-venus/integration-tests/commit/b2db7a4b709f0a3b2eee01edd901779f2803c264) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-dbus (#121)\n- [4b7fd29eebde](https://github.com/victron-venus/integration-tests/commit/4b7fd29eebded9dce2f4026d6ea051f93ad8d331) \u2014 build(deps): bump python from `e06cc11` to `be8ccd0` in /mock-battery (#120)\n- [1b8881351c96](https://github.com/victron-venus/integration-tests/commit/1b8881351c96dc306a66d7c98522c6c16a5a5f10) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#128)\n- [1ac2b766b6cc](https://github.com/victron-venus/integration-tests/commit/1ac2b766b6cc72c3a2bea4bca5745eecf8723ddb) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#127)\n- [2c0aa80f0024](https://github.com/victron-venus/integration-tests/commit/2c0aa80f0024ccf80fa24d80b43517c73e83f3dd) \u2014 build(deps): bump the codeql group with 4 updates (#129)\n- [134df80e3207](https://github.com/victron-venus/integration-tests/commit/134df80e32071c70d8ebc2ae2339c8e517745468) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#130)\n- [d3d81407068a](https://github.com/victron-venus/integration-tests/commit/d3d81407068a47dc1f14e9140c4fdaad80f1620c) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#131)\n- [0dce96298345](https://github.com/victron-venus/integration-tests/commit/0dce96298345ee8d084e2ccf89e4a71c32f733dd) \u2014 Reject invalid or mismatched hardware qualification evidence (#132)\n- [98c7563bc012](https://github.com/victron-venus/integration-tests/commit/98c7563bc0128b73061d3ef0696a58cf140ad9e3) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#134)\n- [bcd148198d32](https://github.com/victron-venus/integration-tests/commit/bcd148198d32273e2a474aea2157070d745c7f34) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#133)\n- [029a55636fd9](https://github.com/victron-venus/integration-tests/commit/029a55636fd930472ccc46d8b1fdb9310112a457) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#138)\n- [698a3f1e9767](https://github.com/victron-venus/integration-tests/commit/698a3f1e9767b7cbdd0b05280504513ed03ca551) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#137)\n- [4027d9302b3d](https://github.com/victron-venus/integration-tests/commit/4027d9302b3dea9a2e123c8cbab7c4d78e74b5d0) \u2014 ci: request advisory CodeRabbit reviews on new PRs (#142)\n- [bdb90a9d55f0](https://github.com/victron-venus/integration-tests/commit/bdb90a9d55f0565ea41bba2ae79058ec61135dab) \u2014 fix: align battery and PV mocks with production MQTT contracts (#141)\n- [a294c5609f8d](https://github.com/victron-venus/integration-tests/commit/a294c5609f8dd3d7274cb03214261f72472f18de) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-merge.yml (#139)\n- [fe83a8428b44](https://github.com/victron-venus/integration-tests/commit/fe83a8428b4441b1ad1ae7ce90e0235ea201b5d9) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/auto-approve-reusable.yml (#140)\n- [ec8c0889a99f](https://github.com/victron-venus/integration-tests/commit/ec8c0889a99f82d24d3114514d8db73061771861) \u2014 ci: group workflow dependency updates with Renovate (#143)\n- [102e0d707e9b](https://github.com/victron-venus/integration-tests/commit/102e0d707e9b435e749a05bfc2c154243add5ae7) \u2014 chore(deps): update github actions and reusable workflows (#144)\n- [7015e693264c](https://github.com/victron-venus/integration-tests/commit/7015e693264c1cd2ca067145eaeceed792cb6901) \u2014 fix: verify container dependency hashes (#146)\n- [4aa06e38f3b4](https://github.com/victron-venus/integration-tests/commit/4aa06e38f3b4405acd286ae3b3e780091a5feb48) \u2014 chore(deps): update github actions and reusable workflows (#147)\n- [aa6f161abd02](https://github.com/victron-venus/integration-tests/commit/aa6f161abd02b3499549bdb76e0a5b24bdfe6d12) \u2014 security: harden code-scanning workflows and CI permissions (#145)\n- [328f5d0cbf83](https://github.com/victron-venus/integration-tests/commit/328f5d0cbf831a682f5cb06d76150228a6f0e67b) \u2014 chore(deps): update github actions and reusable workflows (#148)\n- [70d502359c82](https://github.com/victron-venus/integration-tests/commit/70d502359c82ead379fde1f18726e803ea398a50) \u2014 ci: prepare optional runner reserve without enabling it (#151)\n- [b54ed1de77e3](https://github.com/victron-venus/integration-tests/commit/b54ed1de77e3cf9107e381ebdf00e1e2ce21cc0c) \u2014 chore(deps): update github actions and reusable workflows (#150)\n- [1ca39926fba6](https://github.com/victron-venus/integration-tests/commit/1ca39926fba67e4cf98efde744ed25c5db61d227) \u2014 build(deps): bump websockets from 17.1 to 17.2 (#152)\n- [c69804c8f9e9](https://github.com/victron-venus/integration-tests/commit/c69804c8f9e90b4dbd80cda24819a957796c444e) \u2014 build(deps): bump pytest-html from 4.1.1 to 4.2.0 (#149)\n- [604fceca3914](https://github.com/victron-venus/integration-tests/commit/604fceca39149eec456e26c9fd14893eccef1645) \u2014 docs: align battery mock MQTT topic references (#153)\n- [f20310f4cdcc](https://github.com/victron-venus/integration-tests/commit/f20310f4cdccac28c978e2b543b399258aa822c1) \u2014 chore(deps): update github actions and reusable workflows (#154)\n- [8cb0c2e9483f](https://github.com/victron-venus/integration-tests/commit/8cb0c2e9483f0f05e63efdc00c9c41f31658ec48) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#155)\n- [100d2dccef49](https://github.com/victron-venus/integration-tests/commit/100d2dccef498eb24870407a9a15f482a61851be) \u2014 ci: request CodeRabbit autofix after completed reviews (#156)\n- [eeabcda0072c](https://github.com/victron-venus/integration-tests/commit/eeabcda0072c595d027fcb399adc3cdd2dd9da51) \u2014 Establish security and contribution evidence for OpenSSF (#157)\n- [ea7bf99756c5](https://github.com/victron-venus/integration-tests/commit/ea7bf99756c51a306c5da66b1ecccfa38ef7841e) \u2014 Remove the unused legacy Go dashboard image wrapper (#158)\n- [eac57c8e10f6](https://github.com/victron-venus/integration-tests/commit/eac57c8e10f6aea52ca9709be1dc70385c2b6837) \u2014 Pin patched uv in Python dashboard integration image (#159)\n- [83c8e4b2da19](https://github.com/victron-venus/integration-tests/commit/83c8e4b2da195eed57a16e63cfaa155e3feb9b12) \u2014 Backport reviewed toolkit validation maintenance (#160)\n- [621a945bddca](https://github.com/victron-venus/integration-tests/commit/621a945bddca5963ee5421e72279529e4245481a) \u2014 Clarify workflow assertions and combine image setup steps (#161)\n- [7403367c6a87](https://github.com/victron-venus/integration-tests/commit/7403367c6a8796d59ba4248882b813383f07b928) \u2014 Separate hardware inventory and evidence validation stages (#162)\n- [ca4e3142a64b](https://github.com/victron-venus/integration-tests/commit/ca4e3142a64bf3bf2d0f49968c58ea3023775674) \u2014 Separate hardware report interpretation from transport (#163)\n- [3b7c5ab973ce](https://github.com/victron-venus/integration-tests/commit/3b7c5ab973ce0c61817fdfedc4db02a9371e22ff) \u2014 test: exercise device execution lifecycle without hardware (#164)\n- [f41110db1f4c](https://github.com/victron-venus/integration-tests/commit/f41110db1f4c7d0036ddedf39a6f54c89c416adb) \u2014 Complete device cleanup after MQTT or restoration errors (#166)\n- [bf2a5a9030fc](https://github.com/victron-venus/integration-tests/commit/bf2a5a9030fc1dff7bb053a39979b891eb0c98ee) \u2014 ci: include GitHub Actions in CodeQL analysis (#165)\n- [908bab93f183](https://github.com/victron-venus/integration-tests/commit/908bab93f183824108e83cb1299e17c104dd6128) \u2014 Simplify offline device lifecycle adapters (#167)\n- [61ccb983bf43](https://github.com/victron-venus/integration-tests/commit/61ccb983bf430a13f4585d56bc14fe51793c9502) \u2014 Separate lab qualification stages and preserve recovery ownership (#168)\n- [46179f4f7779](https://github.com/victron-venus/integration-tests/commit/46179f4f7779eef7836355af4ef6174c71fef012) \u2014 Update GitHub Actions and reusable workflows (#169)\n- [e87747d2597d](https://github.com/victron-venus/integration-tests/commit/e87747d2597d51a655b5234bee81c4e2b43ff1d8) \u2014 Enforce SSH RSA minimum for hardware qualification (#170)\n- [aa21baa0fbb0](https://github.com/victron-venus/integration-tests/commit/aa21baa0fbb03c12ac0c4ae09c170f8ff542be69) \u2014 Update GitHub Actions and reusable workflows (#171)\n- [fe87c048d925](https://github.com/victron-venus/integration-tests/commit/fe87c048d925ce7b074033ad4ed9d22d783701c7) \u2014 Update GitHub Actions and reusable workflows (#172)\n- [28ec245ab319](https://github.com/victron-venus/integration-tests/commit/28ec245ab3199c6edcc4c9c3565a91595a32b176) \u2014 Update GitHub Actions and reusable workflows (#173)\n- [4e73f15fd088](https://github.com/victron-venus/integration-tests/commit/4e73f15fd08815f2b48ac219c674e1475c587733) \u2014 Bind hardware acceptance to exact release payloads (#175)\n- [3585b7fde582](https://github.com/victron-venus/integration-tests/commit/3585b7fde58276aba620e2c26574759b5ddd0293) \u2014 fix: bound expanded release archive metadata (#176)\n- [5a4435cf31bb](https://github.com/victron-venus/integration-tests/commit/5a4435cf31bb272a5a6494c9bdba20309f276c99) \u2014 Update GitHub Actions and reusable workflows (#174)\n- [62da904e2c92](https://github.com/victron-venus/integration-tests/commit/62da904e2c925a50e7d6785db970fe907be2b437) \u2014 fix(ci): align Scorecard completeness guard with pinned action (#177)\n- [20871d0cd539](https://github.com/victron-venus/integration-tests/commit/20871d0cd539162f8d9e19f6d9c1e0855e0bdcc4) \u2014 Update GitHub Actions and reusable workflows (#178)\n- [41cf2ad970dd](https://github.com/victron-venus/integration-tests/commit/41cf2ad970dd6c7323e0c8701711f9397cde7dac) \u2014 build(deps): bump python from `0741d10` to `a2b82f3`\n- [48f611b1a3dc](https://github.com/victron-venus/integration-tests/commit/48f611b1a3dca3ae44d4b640dbb8fb25a983373c) \u2014 Merge pull request #179 from victron-venus/dependabot/docker/python-a2b82f3\n- [a3f328b0ce2d](https://github.com/victron-venus/integration-tests/commit/a3f328b0ce2d6788f149f712d6ff343ec695da81) \u2014 feat: qualify offline source releases with RC-only fuzzing (#180)\n\n\n\n\n\n---\n\n## victron-venus/inverter-dashboard-vue \u2014 v2.2.7\n\n[Published stable release](https://github.com/victron-venus/inverter-dashboard-vue/releases/tag/v2.2.7)\n\n## Changes in 2.2.7\n\n### Release overview\n\nProvides the shared Vue dashboard SPA and reusable UI components. The existing README documents configuration and external interfaces for this development line.\n\n### Maintenance\n\n- Add a tested same-origin Caddy hosting profile with TLS1.3, P-256 keys and a restrictive connection policy.\n\n- Restrict private state polling to the page origin and reject redirects before forwarding a page token.\n\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n\n### Upgrade\n\nCamera playback now starts muted; use its media controls to enable audio.\n\nPrivate polling now rejects cross-origin API bases; use a same-origin reverse proxy for private dashboards. Public snapshot mode retains its documented HTTPS proxy support. No data migration is required. Retain local configuration and credentials when using the documented update procedure. Validate the candidate on an isolated system before production use; automated checks do not establish hardware acceptance.\n\n### Security\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nPromoted unchanged from [v2.2.7-rc.2](https://github.com/victron-venus/inverter-dashboard-vue/releases/tag/v2.2.7-rc.2).\n\nSource: `8e4b46b1544d9222cbf8a5395a1764e8849f0601`\n\nValidation: https://github.com/victron-venus/inverter-dashboard-vue/actions/runs/38511917715\n\nPromotion: https://github.com/victron-venus/inverter-dashboard-vue/actions/runs/38512400946\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v2.2.5\n\nReleased source: [8e4b46b1544d](https://github.com/victron-venus/inverter-dashboard-vue/commit/8e4b46b1544d9222cbf8a5395a1764e8849f0601).\nPrevious stable source: [b9f70bda55b0](https://github.com/victron-venus/inverter-dashboard-vue/commit/b9f70bda55b0516a1a7e7c072692f776db4f1394).\n\n[Full source history](https://github.com/victron-venus/inverter-dashboard-vue/compare/b9f70bda55b0516a1a7e7c072692f776db4f1394...8e4b46b1544d9222cbf8a5395a1764e8849f0601). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 35 merged pull requests\n\n- [#196](https://github.com/victron-venus/inverter-dashboard-vue/pull/196) \u2014 fix: show source event time for replayed notifications\n- [#197](https://github.com/victron-venus/inverter-dashboard-vue/pull/197) \u2014 fix: match desktop ESS menu, Home and appliance sections\n- [#198](https://github.com/victron-venus/inverter-dashboard-vue/pull/198) \u2014 fix: report locally refused ESS selections immediately\n- [#199](https://github.com/victron-venus/inverter-dashboard-vue/pull/199) \u2014 fix: evaluate incoming ESS status against the current clock\n- [#200](https://github.com/victron-venus/inverter-dashboard-vue/pull/200) \u2014 ci: prepare optional runner reserve without enabling it\n- [#201](https://github.com/victron-venus/inverter-dashboard-vue/pull/201) \u2014 feat: opt-in persistent browser system notifications\n- [#202](https://github.com/victron-venus/inverter-dashboard-vue/pull/202) \u2014 fix: validate notification worker message origins\n- [#203](https://github.com/victron-venus/inverter-dashboard-vue/pull/203) \u2014 style: soften active controls to match Desktop\n- [#207](https://github.com/victron-venus/inverter-dashboard-vue/pull/207) \u2014 Match Active Loads value colors to Desktop\n- [#208](https://github.com/victron-venus/inverter-dashboard-vue/pull/208) \u2014 Align dashboard controls and telemetry with desktop\n- [#209](https://github.com/victron-venus/inverter-dashboard-vue/pull/209) \u2014 docs: identify frontend consumers and telemetry producers\n- [#206](https://github.com/victron-venus/inverter-dashboard-vue/pull/206) \u2014 chore(deps): update dashboard dependencies and CI workflow pins\n- [#210](https://github.com/victron-venus/inverter-dashboard-vue/pull/210) \u2014 chore(deps): bump @lucide/vue from 1.50.0 to 1.51.0\n- [#211](https://github.com/victron-venus/inverter-dashboard-vue/pull/211) \u2014 chore(deps): update github actions and reusable workflows\n- [#212](https://github.com/victron-venus/inverter-dashboard-vue/pull/212) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#213](https://github.com/victron-venus/inverter-dashboard-vue/pull/213) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#214](https://github.com/victron-venus/inverter-dashboard-vue/pull/214) \u2014 chore(deps): bump @lucide/vue from 1.51.0 to 1.52.0\n- [#215](https://github.com/victron-venus/inverter-dashboard-vue/pull/215) \u2014 Require source-bound release notes and document security process\n- [#216](https://github.com/victron-venus/inverter-dashboard-vue/pull/216) \u2014 Use locked dependencies for dashboard exports\n- [#217](https://github.com/victron-venus/inverter-dashboard-vue/pull/217) \u2014 Simplify nightly identity validation while preserving ASCII rules\n- [#218](https://github.com/victron-venus/inverter-dashboard-vue/pull/218) \u2014 Preserve live status and localize water control names\n- [#219](https://github.com/victron-venus/inverter-dashboard-vue/pull/219) \u2014 Simplify tariff validation and gateway display selection\n- [#220](https://github.com/victron-venus/inverter-dashboard-vue/pull/220) \u2014 Hoist stateless Home Assistant compatibility hooks\n- [#221](https://github.com/victron-venus/inverter-dashboard-vue/pull/221) \u2014 chore(deps): update github actions and reusable workflows\n- [#222](https://github.com/victron-venus/inverter-dashboard-vue/pull/222) \u2014 Isolate release rejection fixtures and cover mixed-script nightly sequences\n- [#223](https://github.com/victron-venus/inverter-dashboard-vue/pull/223) \u2014 chore(deps): update github actions and reusable workflows\n- [#224](https://github.com/victron-venus/inverter-dashboard-vue/pull/224) \u2014 fix(ci): include release helpers in Sonar analysis\n- [#225](https://github.com/victron-venus/inverter-dashboard-vue/pull/225) \u2014 chore(deps): update github actions and reusable workflows\n- [#226](https://github.com/victron-venus/inverter-dashboard-vue/pull/226) \u2014 chore(deps): update github actions and reusable workflows\n- [#232](https://github.com/victron-venus/inverter-dashboard-vue/pull/232) \u2014 fix: use HTTP headers for release API status\n- [#231](https://github.com/victron-venus/inverter-dashboard-vue/pull/231) \u2014 chore(deps): update frontend dependencies and shared CI\n- [#233](https://github.com/victron-venus/inverter-dashboard-vue/pull/233) \u2014 fix(ci): align Scorecard completeness guard with pinned action\n- [#234](https://github.com/victron-venus/inverter-dashboard-vue/pull/234) \u2014 chore(deps): update github actions and reusable workflows\n- [#235](https://github.com/victron-venus/inverter-dashboard-vue/pull/235) \u2014 Fuzz RC telemetry and ESS command boundaries with Jazzer.js\n- [#236](https://github.com/victron-venus/inverter-dashboard-vue/pull/236) \u2014 Protect private telemetry credentials and add verified HTTPS hosting\n\n\n\n\n\nAll 40 commits\n\n- [d973d18558b9](https://github.com/victron-venus/inverter-dashboard-vue/commit/d973d18558b95c5e4cbbb9640c9f7ca14f155f61) \u2014 fix: show source event time for replayed notifications (#196)\n- [863e8373790c](https://github.com/victron-venus/inverter-dashboard-vue/commit/863e8373790c61c747e67e9603ff58c5cc693849) \u2014 fix: align dashboard controls and sections with desktop\n- [53a4fd12f387](https://github.com/victron-venus/inverter-dashboard-vue/commit/53a4fd12f387b98b6a624b84d5216cb223098145) \u2014 fix: address ESS status accessibility and tariff diagnostics\n- [d393ad3e1fa2](https://github.com/victron-venus/inverter-dashboard-vue/commit/d393ad3e1fa2abaafaad93a7a0b38b69d1695903) \u2014 fix: generate ESS request IDs on LAN HTTP origins\n- [ba594ab70f18](https://github.com/victron-venus/inverter-dashboard-vue/commit/ba594ab70f18419b966fe5646f2bbb46f334e62c) \u2014 Merge pull request #197 from victron-venus/fix/desktop-parity-20261005\n- [43f8f0ef269d](https://github.com/victron-venus/inverter-dashboard-vue/commit/43f8f0ef269d839f6c757342ce4fc01ffd351995) \u2014 fix: report locally refused ESS selections immediately\n- [f06f32df8910](https://github.com/victron-venus/inverter-dashboard-vue/commit/f06f32df89102dcf2e2f2b9c46eea32ad7431a1a) \u2014 Merge pull request #198 from victron-venus/fix/ess-local-command-feedback-20261005\n- [29eb1434161d](https://github.com/victron-venus/inverter-dashboard-vue/commit/29eb1434161de8b84b3f9bdd9e46962fdc5123cc) \u2014 fix: use current time for incoming ESS observations\n- [d95903fc94ab](https://github.com/victron-venus/inverter-dashboard-vue/commit/d95903fc94abf4f9e8aabb22ddd172fb48e91481) \u2014 Merge pull request #199 from victron-venus/fix/ess-clock-freshness-20261005\n- [9374e25fc935](https://github.com/victron-venus/inverter-dashboard-vue/commit/9374e25fc935c4a3b434efc64e3bff4c0258348a) \u2014 ci: prepare optional runner reserve without enabling it (#200)\n- [85767ef372b1](https://github.com/victron-venus/inverter-dashboard-vue/commit/85767ef372b10cddfd44433135b674c804e353ff) \u2014 feat: opt-in persistent browser system notifications (#201)\n- [697038c6bd9f](https://github.com/victron-venus/inverter-dashboard-vue/commit/697038c6bd9fe72548127734a4b6b332df8aab71) \u2014 fix: validate notification worker message origins (#202)\n- [e74bb3b99c35](https://github.com/victron-venus/inverter-dashboard-vue/commit/e74bb3b99c353b4b41142330d573559895f2d890) \u2014 style: soften active controls to match Desktop (#203)\n- [74abcfb13eb5](https://github.com/victron-venus/inverter-dashboard-vue/commit/74abcfb13eb543c5b64c6b36932344b69d2c3c0b) \u2014 Match Active Loads value colors to Desktop (#207)\n- [3d4a03fd3401](https://github.com/victron-venus/inverter-dashboard-vue/commit/3d4a03fd3401334ac9e69f6d103caff41dc243ae) \u2014 Align dashboard controls and telemetry with desktop (#208)\n- [b7fbe047070e](https://github.com/victron-venus/inverter-dashboard-vue/commit/b7fbe047070e79c9218da91fd3bd873fdb9db7bb) \u2014 docs: identify frontend consumers and telemetry producers (#209)\n- [b90237ac7cc9](https://github.com/victron-venus/inverter-dashboard-vue/commit/b90237ac7cc929742157637ac5c970e60f0db982) \u2014 chore(deps): update dashboard dependencies and CI workflow pins (#206)\n- [8dcb482e1fe8](https://github.com/victron-venus/inverter-dashboard-vue/commit/8dcb482e1fe8ec3251e4c0f23d3389d437dec33e) \u2014 chore(deps): bump @lucide/vue from 1.50.0 to 1.51.0 (#210)\n- [619923149b85](https://github.com/victron-venus/inverter-dashboard-vue/commit/619923149b854ee198c4fc513a91e6aeaef50c6c) \u2014 chore(deps): update github actions and reusable workflows (#211)\n- [2a15bcf7d940](https://github.com/victron-venus/inverter-dashboard-vue/commit/2a15bcf7d940737ab19c9ccf0dcdb9fba68d2493) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#212)\n- [dd2267c3a729](https://github.com/victron-venus/inverter-dashboard-vue/commit/dd2267c3a729fc62fe8aa588f3c199f0dc5a3eaf) \u2014 ci: request CodeRabbit autofix after completed reviews (#213)\n- [be8f8cb38700](https://github.com/victron-venus/inverter-dashboard-vue/commit/be8f8cb38700c3d2340cdc73ee9e5ac5c5fc9ce8) \u2014 chore(deps): bump @lucide/vue from 1.51.0 to 1.52.0 (#214)\n- [e750dddece9c](https://github.com/victron-venus/inverter-dashboard-vue/commit/e750dddece9c8ca8e957e56c1beec143ae849152) \u2014 Require source-bound release notes and document security process (#215)\n- [c9a33b39da69](https://github.com/victron-venus/inverter-dashboard-vue/commit/c9a33b39da69b8703fc0ddbc9b1ff09662a0554c) \u2014 Use locked dependencies for dashboard exports (#216)\n- [25decbcf82b8](https://github.com/victron-venus/inverter-dashboard-vue/commit/25decbcf82b85ec169c13b820dd301d68928b1a1) \u2014 Backport reviewed toolkit validation maintenance (#217)\n- [b4f6a72e18e5](https://github.com/victron-venus/inverter-dashboard-vue/commit/b4f6a72e18e57a51c6677d7ca5530527853ab39a) \u2014 Preserve live status and localize water control names (#218)\n- [038e6d71012f](https://github.com/victron-venus/inverter-dashboard-vue/commit/038e6d71012f3b4468cc90c638d73f78d02c0f99) \u2014 Simplify tariff validation and snapshot selection (#219)\n- [7b5ec283bffd](https://github.com/victron-venus/inverter-dashboard-vue/commit/7b5ec283bffd7c980a1c956a9a8c252c418a8930) \u2014 Hoist stateless Home Assistant compatibility hooks (#220)\n- [784a817fc345](https://github.com/victron-venus/inverter-dashboard-vue/commit/784a817fc3453a99b62127d8f7e731c39fef6053) \u2014 chore(deps): update github actions and reusable workflows (#221)\n- [5aba3ff96bf9](https://github.com/victron-venus/inverter-dashboard-vue/commit/5aba3ff96bf97698fa54b3adc373e3b0101c3278) \u2014 test(release): isolate rejection fixtures and cover mixed-script nightly IDs (#222)\n- [2897409723ed](https://github.com/victron-venus/inverter-dashboard-vue/commit/2897409723ed02e6791720c30865c520a4300807) \u2014 chore(deps): update github actions and reusable workflows (#223)\n- [197f7aaabc0b](https://github.com/victron-venus/inverter-dashboard-vue/commit/197f7aaabc0bd85d35943f93d3f8de839bd19e13) \u2014 fix(ci): include release helpers in Sonar analysis (#224)\n- [67994c49a119](https://github.com/victron-venus/inverter-dashboard-vue/commit/67994c49a119e8e602def4a3d975b366e54f9f23) \u2014 chore(deps): update github actions and reusable workflows (#225)\n- [ed2c27ca5ae3](https://github.com/victron-venus/inverter-dashboard-vue/commit/ed2c27ca5ae318156a4c5af7d58dcd5aa87b0840) \u2014 chore(deps): update github actions and reusable workflows (#226)\n- [b347b99afb28](https://github.com/victron-venus/inverter-dashboard-vue/commit/b347b99afb280cd5fdc8f0cd2ff68058f5cbf14e) \u2014 fix: use HTTP headers for release API status (#232)\n- [bd9376b45d4c](https://github.com/victron-venus/inverter-dashboard-vue/commit/bd9376b45d4c7e8b975a5b69b6c5c8eb942ec25e) \u2014 chore(deps): update frontend dependencies and shared CI (#231)\n- [db55716b79b5](https://github.com/victron-venus/inverter-dashboard-vue/commit/db55716b79b533ed9f46558ae2d0b760e15f5818) \u2014 fix(ci): align Scorecard completeness guard with pinned action (#233)\n- [25c3ff98b599](https://github.com/victron-venus/inverter-dashboard-vue/commit/25c3ff98b599aa9d28ea5295d2a678de7d009500) \u2014 chore(deps): update github actions and reusable workflows (#234)\n- [a46ad94ee7ec](https://github.com/victron-venus/inverter-dashboard-vue/commit/a46ad94ee7ecd2e638c4c9a1664c76f93d151e16) \u2014 Fuzz RC telemetry and ESS command boundaries with Jazzer.js (#235)\n- [8e4b46b1544d](https://github.com/victron-venus/inverter-dashboard-vue/commit/8e4b46b1544d9222cbf8a5395a1764e8849f0601) \u2014 Protect private telemetry credentials and add verified HTTPS hosting (#236)\n\n\n\n\n\n---\n\n## victron-venus/venus-os-observability \u2014 v0.1.8\n\n[Published stable release](https://github.com/victron-venus/venus-os-observability/releases/tag/v0.1.8)\n\n## Changes in 0.1.8\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Changes\n\n- Bound and validate Grafana webhook bodies and entire alert batches before forwarding notifications; document governance, security evidence and remaining OpenSSF requirements.\n- Reject oversized, entity-bearing or malformed D-Bus introspection XML without interrupting service discovery.\n- Close alert TLS sockets after fatal handshake errors while preserving nonblocking retries.\n- Verify SMTP STARTTLS certificates and reject weak alert-relay TLS keys before sending credentials or alert data.\n- Add explicit HTTPS OTLP/HTTP export with certificate and key checks; reject HTTPS gRPC with migration guidance.\n- Verify locked Python dependency hashes across CI, packaging and container builds, retaining the supported Paho MQTT API.\n- Separate metric routing predicates without changing published values, refresh build/security tooling, and fix release API status handling.\n\n### Upgrade\n\nGrafana webhook clients must supply one decimal Content-Length, stay within 1 MiB/1000 alerts, and use string labels/annotations. Empty alerts arrays remain supported; malformed batches are rejected before delivery. Rebuild alert relay environments with the locked TLS dependencies and replace certificates below the documented key minima. Migrate HTTPS gRPC exporters to an explicitly configured HTTPS OTLP/HTTP listener with `http/protobuf`; explicit local plaintext gRPC remains supported. See [the OTLP migration guide](https://github.com/victron-venus/venus-os-observability/blob/dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5/docs/otlp-transport.md) and [alert relay TLS guidance](https://github.com/victron-venus/venus-os-observability/blob/dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5/docs/alert-relay-tls.md). Hardware and in-place device upgrades require separate acceptance checks.\n\n### Security\n\nVerify peer certificates, hostnames and minimum key sizes before sending SMTP credentials, alert content or HTTPS OTLP data. Reject unsafe redirects and proxy routes. Replace weak certificates and retain explicit trust configuration; local plaintext exporters remain an operator-selected trust boundary.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.8-rc.1](https://github.com/victron-venus/venus-os-observability/releases/tag/v0.1.8-rc.1).\n\nSource: `dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5`\n\nValidation: https://github.com/victron-venus/venus-os-observability/actions/runs/38494081688\n\nPromotion: https://github.com/victron-venus/venus-os-observability/actions/runs/38510817498\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.7\n\nReleased source: [dc5b67b607a9](https://github.com/victron-venus/venus-os-observability/commit/dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5).\nPrevious stable source: [7a9002e9cd85](https://github.com/victron-venus/venus-os-observability/commit/7a9002e9cd8598c130788dcf013ad9e3a7785e7d).\n\n[Full source history](https://github.com/victron-venus/venus-os-observability/compare/7a9002e9cd8598c130788dcf013ad9e3a7785e7d...dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 23 merged pull requests\n\n- [#45](https://github.com/victron-venus/venus-os-observability/pull/45) \u2014 ci: prepare optional runner reserve without enabling it\n- [#46](https://github.com/victron-venus/venus-os-observability/pull/46) \u2014 docs: make alert policy guidance deployment independent\n- [#47](https://github.com/victron-venus/venus-os-observability/pull/47) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#59](https://github.com/victron-venus/venus-os-observability/pull/59) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#53](https://github.com/victron-venus/venus-os-observability/pull/53) \u2014 build: validate compatible dependencies and CI together\n- [#61](https://github.com/victron-venus/venus-os-observability/pull/61) \u2014 build: refresh Ubuntu 24.04 without changing the Python ABI\n- [#60](https://github.com/victron-venus/venus-os-observability/pull/60) \u2014 Require source-bound release notes and document security process\n- [#64](https://github.com/victron-venus/venus-os-observability/pull/64) \u2014 Separate metric routing predicates from publication\n- [#63](https://github.com/victron-venus/venus-os-observability/pull/63) \u2014 build: verify locked Python dependencies across build paths\n- [#65](https://github.com/victron-venus/venus-os-observability/pull/65) \u2014 Use locked shared Python CI and clearer release validation tests\n- [#62](https://github.com/victron-venus/venus-os-observability/pull/62) \u2014 build: bump the ci-workflows group across 1 directory with 15 updates\n- [#66](https://github.com/victron-venus/venus-os-observability/pull/66) \u2014 fix: verify SMTP STARTTLS before sending credentials\n- [#67](https://github.com/victron-venus/venus-os-observability/pull/67) \u2014 Reject weak OTLP TLS keys with an explicit HTTPS transport\n- [#68](https://github.com/victron-venus/venus-os-observability/pull/68) \u2014 Verify relay TLS keys before sending alert credentials\n- [#71](https://github.com/victron-venus/venus-os-observability/pull/71) \u2014 build: bump the ci-workflows group with 5 updates\n- [#70](https://github.com/victron-venus/venus-os-observability/pull/70) \u2014 build: update locked build and security tools\n- [#72](https://github.com/victron-venus/venus-os-observability/pull/72) \u2014 docs: clarify observability runtime and delivery verification\n- [#76](https://github.com/victron-venus/venus-os-observability/pull/76) \u2014 fix: use HTTP headers for release API status\n- [#75](https://github.com/victron-venus/venus-os-observability/pull/75) \u2014 chore(deps): update Ruff, type stubs and shared CI\n- [#77](https://github.com/victron-venus/venus-os-observability/pull/77) \u2014 chore: prepare release 0.1.8\n- [#78](https://github.com/victron-venus/venus-os-observability/pull/78) \u2014 Harden observation inputs and document OpenSSF evidence\n- [#80](https://github.com/victron-venus/venus-os-observability/pull/80) \u2014 Provide direct private conduct reporting contact\n- [#79](https://github.com/victron-venus/venus-os-observability/pull/79) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 23 commits\n\n- [1d6d0453792b](https://github.com/victron-venus/venus-os-observability/commit/1d6d0453792b06f628d93bb28b03739012341504) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#45)\n- [dd5d09fdee1f](https://github.com/victron-venus/venus-os-observability/commit/dd5d09fdee1ff0c7ecf2e33e5ca44c584ab3aa14) \u2014 docs: make alert policy guidance deployment independent (#46)\n- [6641b0d69563](https://github.com/victron-venus/venus-os-observability/commit/6641b0d695631cfbd0994a15b3dfd9f72420729e) \u2014 \\[StepSecurity\\] Apply security best practices (#47)\n- [737c0d51a637](https://github.com/victron-venus/venus-os-observability/commit/737c0d51a6378a96f32f52afbf109b667444a0e0) \u2014 ci: request CodeRabbit autofix after completed reviews (#59)\n- [7447826976a3](https://github.com/victron-venus/venus-os-observability/commit/7447826976a361fdd0c93cc75b377bac70fdb4d3) \u2014 build: validate compatible dependencies and CI together (#53)\n- [bc70a2cb5a13](https://github.com/victron-venus/venus-os-observability/commit/bc70a2cb5a1302057772663f0a555ba32d9da4a9) \u2014 build: refresh Ubuntu 24.04 without changing the Python ABI (#61)\n- [a4a1acb80f42](https://github.com/victron-venus/venus-os-observability/commit/a4a1acb80f42c8a24ae599431e7bc0d1c96fd73f) \u2014 Require source-bound release notes and document security process (#60)\n- [51345b5b3597](https://github.com/victron-venus/venus-os-observability/commit/51345b5b3597ba9341ff5f9af7d2a77adb106da2) \u2014 refactor: separate metric routing predicates (#64)\n- [8c78be84aaf1](https://github.com/victron-venus/venus-os-observability/commit/8c78be84aaf1f9b5c9eb3de048a4ffc97a67ba27) \u2014 build: verify locked Python dependencies across build paths (#63)\n- [69de9c0c7f05](https://github.com/victron-venus/venus-os-observability/commit/69de9c0c7f056563c64dedae3f5c1de93f191c90) \u2014 Use locked shared Python CI and clearer release validation tests (#65)\n- [8685ae052b39](https://github.com/victron-venus/venus-os-observability/commit/8685ae052b3955265f340e74235c6b700a4b52c5) \u2014 build: bump the ci-workflows group across 1 directory with 15 updates (#62)\n- [11e88ea4393d](https://github.com/victron-venus/venus-os-observability/commit/11e88ea4393d10080f20419dc0bd12e9d47c95e9) \u2014 fix: verify SMTP STARTTLS server certificates (#66)\n- [c732d26a65f3](https://github.com/victron-venus/venus-os-observability/commit/c732d26a65f3259aab3442679375b41625310500) \u2014 Reject weak OTLP TLS keys with an explicit HTTPS transport (#67)\n- [d67b8790c11c](https://github.com/victron-venus/venus-os-observability/commit/d67b8790c11cb8e9cd418f9fd3f34c7de9cc165d) \u2014 Verify relay TLS keys before sending alert credentials (#68)\n- [e02257ea5d2e](https://github.com/victron-venus/venus-os-observability/commit/e02257ea5d2e22ecd0875babc8faf3f35bcb0d78) \u2014 build: bump the ci-workflows group with 5 updates (#71)\n- [997cd3f2ee95](https://github.com/victron-venus/venus-os-observability/commit/997cd3f2ee955d7da5e38b6c5659e522520b503d) \u2014 build: update locked build and security tools (#70)\n- [7a54e35fe43e](https://github.com/victron-venus/venus-os-observability/commit/7a54e35fe43ec87ac008663e408a4ea2bcd3bfb9) \u2014 docs: clarify observability runtime and delivery verification (#72)\n- [95d5551199dc](https://github.com/victron-venus/venus-os-observability/commit/95d5551199dc7db1870179efc7b5720bc73b1925) \u2014 fix: use HTTP headers for release API status (#76)\n- [e984e658635b](https://github.com/victron-venus/venus-os-observability/commit/e984e658635beb902abedfc9a84af25d1075cbce) \u2014 chore(deps): update Ruff, type stubs and shared CI (#75)\n- [3d4417765ebb](https://github.com/victron-venus/venus-os-observability/commit/3d4417765ebb38498cead4ae3b3a267c47161784) \u2014 chore: prepare release 0.1.8 (#77)\n- [6436388f5078](https://github.com/victron-venus/venus-os-observability/commit/6436388f50781605d08381fc15a08cbaf2b15d33) \u2014 Harden observation inputs and document OpenSSF evidence (#78)\n- [6256dfe75575](https://github.com/victron-venus/venus-os-observability/commit/6256dfe755757f392055925a4f7bf1bca8666209) \u2014 docs: provide direct private conduct reporting contact (#80)\n- [dc5b67b607a9](https://github.com/victron-venus/venus-os-observability/commit/dc5b67b607a90a3d8a1f5c2c4ccbef18394470c5) \u2014 Require bounded RC fuzzing with documented targets and evidence (#79)\n\n\n\n\n\n---\n\n## victron-venus/dbus-event-log \u2014 v0.2.2\n\n[Published stable release](https://github.com/victron-venus/dbus-event-log/releases/tag/v0.2.2)\n\n## Changes in 0.2.2\n\n### Maintenance\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Upgrade\n\nUse the documented update procedure and retain local configuration. Automated tests do not establish target-device acceptance.\n\n### Security\n\nRelease qualification now requires isolated fuzzing against the candidate source. Report findings through SECURITY.md.\n\n## Build provenance\n\nPromoted unchanged from [v0.2.2-rc.1](https://github.com/victron-venus/dbus-event-log/releases/tag/v0.2.2-rc.1).\n\nSource: `f27916208591e8e317870397b64d36095d653dd4`\n\nValidation: https://github.com/victron-venus/dbus-event-log/actions/runs/38495586407\n\nPromotion: https://github.com/victron-venus/dbus-event-log/actions/runs/38510824072\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.2.1\n\nReleased source: [f27916208591](https://github.com/victron-venus/dbus-event-log/commit/f27916208591e8e317870397b64d36095d653dd4).\nPrevious stable source: [a02ec28b1b40](https://github.com/victron-venus/dbus-event-log/commit/a02ec28b1b406a760bf9a61032e90df277589c6f).\n\n[Full source history](https://github.com/victron-venus/dbus-event-log/compare/a02ec28b1b406a760bf9a61032e90df277589c6f...f27916208591e8e317870397b64d36095d653dd4). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 4 merged pull requests\n\n- [#146](https://github.com/victron-venus/dbus-event-log/pull/146) \u2014 Document verified v0.2.1 release and Silver evidence\n- [#147](https://github.com/victron-venus/dbus-event-log/pull/147) \u2014 chore(deps): update github actions and reusable workflows\n- [#148](https://github.com/victron-venus/dbus-event-log/pull/148) \u2014 chore(deps): bump python from `51dafde` to `a2b82f3`\n- [#149](https://github.com/victron-venus/dbus-event-log/pull/149) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 5 commits\n\n- [c34398eb7310](https://github.com/victron-venus/dbus-event-log/commit/c34398eb73104adb91ab3499822dfbc85f431d2e) \u2014 Document verified v0.2.1 release and Silver evidence (#146)\n- [d0547ca718c0](https://github.com/victron-venus/dbus-event-log/commit/d0547ca718c080413a3c20eda31ef5207d2848cd) \u2014 chore(deps): update github actions and reusable workflows (#147)\n- [5d0949b207e6](https://github.com/victron-venus/dbus-event-log/commit/5d0949b207e66942824687014c6b96c68a1fce7b) \u2014 chore(deps): bump python from `51dafde` to `a2b82f3`\n- [0d498d16d2b9](https://github.com/victron-venus/dbus-event-log/commit/0d498d16d2b9da4f8aac4f81178f2daf099c9d5c) \u2014 Merge pull request #148 from victron-venus/dependabot/docker/python-a2b82f3\n- [f27916208591](https://github.com/victron-venus/dbus-event-log/commit/f27916208591e8e317870397b64d36095d653dd4) \u2014 Require bounded RC fuzzing with documented targets and evidence (#149)\n\n\n\n\n\n---\n\n## victron-venus/dbus-esphome-grid-sensor \u2014 v1.0.5\n\n[Published stable release](https://github.com/victron-venus/dbus-esphome-grid-sensor/releases/tag/v1.0.5)\n\n## Changes in 1.0.5\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Changed\n\n- Require encrypted OTA in the pinned ESPHome firmware profile and validate the example using synthetic secrets and an explicit calibration table.\n- Preserve D-Bus and MQTT failure tracebacks, validate configuration and package paths, and use hash-locked build and security dependencies.\n- Interpret GitHub response status from authoritative HTTP headers during release publication.\n\n### Upgrade\n\nRetain existing API credentials and calibration data. Password-OTA devices require the documented two-stage migration or serial provisioning before adopting the encrypted profile; see `esphome/README.md`. Firmware compilation and offline tests do not replace hardware validation. This cycle uses a new base version rather than the existing 1.0.4 release tag.\n\n### Security\n\nUse deployment-specific encrypted OTA and API keys; the checked-in examples and CI validation use synthetic values only. Keep existing credentials out of committed configuration and preserve the encrypted transport requirements during migration.\n\n## Build provenance\n\nPromoted unchanged from [v1.0.5-rc.1](https://github.com/victron-venus/dbus-esphome-grid-sensor/releases/tag/v1.0.5-rc.1).\n\nSource: `014c2d9414a5e93f589e9fe222ee16728dea911a`\n\nValidation: https://github.com/victron-venus/dbus-esphome-grid-sensor/actions/runs/38495508429\n\nPromotion: https://github.com/victron-venus/dbus-esphome-grid-sensor/actions/runs/38510830831\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.0.4\n\nReleased source: [014c2d9414a5](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/014c2d9414a5e93f589e9fe222ee16728dea911a).\nPrevious stable source: [ba6e0d60fa78](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/ba6e0d60fa7806ea8dc18fc08872ffd460e3fa30).\n\n[Full source history](https://github.com/victron-venus/dbus-esphome-grid-sensor/compare/ba6e0d60fa7806ea8dc18fc08872ffd460e3fa30...014c2d9414a5e93f589e9fe222ee16728dea911a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 20 merged pull requests\n\n- [#36](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/36) \u2014 ci: prepare optional runner reserve without enabling it\n- [#37](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/37) \u2014 fix: synchronize package version in uv.lock\n- [#38](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/38) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#48](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/48) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#43](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/43) \u2014 ci: update compatible actions together\n- [#40](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/40) \u2014 build: refresh tested Python dependencies\n- [#51](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/51) \u2014 ci: refresh actions and preserve the Ubuntu native ABI\n- [#49](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/49) \u2014 fix: bound configuration parsing and verify release evidence\n- [#53](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/53) \u2014 Preserve grid failure diagnostics and ASCII configuration rules\n- [#54](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/54) \u2014 build: verify locked Python dependencies across build paths\n- [#55](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/55) \u2014 Use locked shared Python CI and clearer release validation tests\n- [#52](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/52) \u2014 ci: bump the ci-workflows group across 1 directory with 5 updates\n- [#56](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/56) \u2014 Simplify image build and deterministic archive contexts\n- [#57](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/57) \u2014 Require encrypted OTA and build the supported firmware profile\n- [#60](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/60) \u2014 ci: bump the ci-workflows group with 5 updates\n- [#58](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/58) \u2014 build: update locked build and security tools\n- [#62](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/62) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#61](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/61) \u2014 build: bump the ci-workflows group with 11 updates\n- [#63](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/63) \u2014 chore: prepare 1.0.5 release cycle\n- [#65](https://github.com/victron-venus/dbus-esphome-grid-sensor/pull/65) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 20 commits\n\n- [9ef5135dd0fa](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/9ef5135dd0fa9e3f0914a4e08bcd739658bc2143) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#36)\n- [c20f987876d4](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/c20f987876d47551b9ee401e0d55aeac544a1358) \u2014 fix: synchronize package lock version with 1.0.4 (#37)\n- [29b67f6930a9](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/29b67f6930a91cdff646a0911a5b997188167c41) \u2014 \\[StepSecurity\\] Apply security best practices (#38)\n- [bee4f081e474](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/bee4f081e4749b8a180cace3d2dac15c40b3bec0) \u2014 ci: request CodeRabbit autofix after completed reviews (#48)\n- [d3a55470ba58](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/d3a55470ba5835ac1a922bd2155b9b398f9982e6) \u2014 ci: update compatible actions together (#43)\n- [abe958f0b3d4](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/abe958f0b3d4fd1e58caa44a887bc6d349cac665) \u2014 build: refresh tested Python dependencies (#40)\n- [abff517064d5](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/abff517064d5317dd2c89c4e4ac8d35e5bd0e570) \u2014 ci: refresh actions and preserve the Ubuntu native ABI (#51)\n- [e47394785a0f](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/e47394785a0f87ae464baf0f4494abe88e091711) \u2014 fix: bound configuration parsing and verify release evidence (#49)\n- [10ab35f3ead7](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/10ab35f3ead7c8038c7588b67312331f1c309c69) \u2014 fix: preserve grid failure diagnostics and ASCII configuration rules (#53)\n- [43e6732cfe87](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/43e6732cfe872aa879d86718ea77dfb14fb6699d) \u2014 build: verify locked Python dependencies across build paths (#54)\n- [c9cde2644e5a](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/c9cde2644e5ae28c93563548a0a3d2f98b3e36f4) \u2014 Use locked shared Python CI and clearer release validation tests (#55)\n- [93d3eebfa464](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/93d3eebfa464aaa48ef12520f296ecf49495e08b) \u2014 ci: bump the ci-workflows group across 1 directory with 5 updates (#52)\n- [67b40744274b](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/67b40744274bb1a6f7333e6b87fd455c4771e2d3) \u2014 Simplify image build and deterministic archive contexts (#56)\n- [f05486b60a6e](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/f05486b60a6ebcab0fe341f342c021231285fd2f) \u2014 Require encrypted OTA and validate the pinned firmware profile (#57)\n- [6dfdf1074765](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/6dfdf107476507384338021b649cc430498a5d69) \u2014 ci: bump the ci-workflows group with 5 updates (#60)\n- [eabb0f899541](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/eabb0f899541bf33c7508c1f9783d943808106af) \u2014 build: update locked build and security tools (#58)\n- [1442785e8eea](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/1442785e8eeaff24e71cd72fb22f70f431499d65) \u2014 fix(release): use authoritative GitHub HTTP status (#62)\n- [22d62f3f9f77](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/22d62f3f9f7720a5185d91e897bdac05a9b4a9be) \u2014 build: bump the ci-workflows group with 11 updates (#61)\n- [303258b0e0a0](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/303258b0e0a0f061ccfe28b3dd97b7830e3d886e) \u2014 chore: prepare 1.0.5 release cycle (#63)\n- [014c2d9414a5](https://github.com/victron-venus/dbus-esphome-grid-sensor/commit/014c2d9414a5e93f589e9fe222ee16728dea911a) \u2014 Require bounded RC fuzzing with documented targets and evidence (#65)\n\n\n\n\n\n---\n\n## victron-venus/venus-os-ci-toolkit \u2014 v0.1.1\n\n[Published stable release](https://github.com/victron-venus/venus-os-ci-toolkit/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n- Add versioned source candidates with deterministic archives, an explicit source\n  inventory, version receipts and contract tests against the extracted source.\n- Require bounded Linux Atheris campaigns for RCs over the owned OCI metadata\n  and version-policy parsers; record evidence for the exact candidate source.\n- Reject JSON numbers that overflow finite floating-point representation before\n  accepting OCI metadata, preserving canonical JSON round trips.\n- Keep source distribution versions independent of consumer workflow commit pins.\n\n### Upgrade\n\nDownload the candidate source archive and follow `docs/self-release.md` to install\nits locked development dependencies and rerun the extracted-source tests. Existing\nconsumers keep their immutable workflow commits until explicitly updated; source\ncandidate versions are independent of those workflow references.\n\n### Security\n\nThe OCI metadata reader now rejects overflowing JSON numbers. RCs additionally\nrecord bounded, isolated Linux campaigns over the metadata and version-policy\nparsers. Review the evidence attached to the exact candidate tag before adopting\nit. These software checks do not certify hardware integrations or deployed systems.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.2](https://github.com/victron-venus/venus-os-ci-toolkit/releases/tag/v0.1.1-rc.2).\n\nSource: `3ee3558ff523dc31d89d8f5e3fd39b98efe36f0a`\n\nValidation: https://github.com/victron-venus/venus-os-ci-toolkit/actions/runs/38510834150\n\nPromotion: https://github.com/victron-venus/venus-os-ci-toolkit/actions/runs/38512085727\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [3ee3558ff523](https://github.com/victron-venus/venus-os-ci-toolkit/commit/3ee3558ff523dc31d89d8f5e3fd39b98efe36f0a).\nPrevious stable source: [ffbca2551be4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ffbca2551be4f8ad33bfa67157e0c8aa3c1f55f8).\n\n[Full source history](https://github.com/victron-venus/venus-os-ci-toolkit/compare/ffbca2551be4f8ad33bfa67157e0c8aa3c1f55f8...3ee3558ff523dc31d89d8f5e3fd39b98efe36f0a). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 122 merged pull requests\n\n- [#32](https://github.com/victron-venus/venus-os-ci-toolkit/pull/32) \u2014 ci: standardize gated releases and local private validation\n- [#33](https://github.com/victron-venus/venus-os-ci-toolkit/pull/33) \u2014 fix: restore Quality gate and validate nested workflow permissions\n- [#34](https://github.com/victron-venus/venus-os-ci-toolkit/pull/34) \u2014 Approve trusted PRs independently of the automerge label\n- [#35](https://github.com/victron-venus/venus-os-ci-toolkit/pull/35) \u2014 docs: document public application release recovery\n- [#36](https://github.com/victron-venus/venus-os-ci-toolkit/pull/36) \u2014 Freeze release versions before builds and synchronize owned manifests\n- [#37](https://github.com/victron-venus/venus-os-ci-toolkit/pull/37) \u2014 fix: accept filtered checkouts and OCI attestations\n- [#38](https://github.com/victron-venus/venus-os-ci-toolkit/pull/38) \u2014 docs: define Tauri release version projections\n- [#39](https://github.com/victron-venus/venus-os-ci-toolkit/pull/39) \u2014 fix: bound nightly Python versions and narrow release secrets\n- [#40](https://github.com/victron-venus/venus-os-ci-toolkit/pull/40) \u2014 fix: reject mixed CodeQL versions before rendering release workflows\n- [#41](https://github.com/victron-venus/venus-os-ci-toolkit/pull/41) \u2014 fix: approve Dependabot PRs with GITHUB_TOKEN\n- [#42](https://github.com/victron-venus/venus-os-ci-toolkit/pull/42) \u2014 ci: run validation once and delegate protected auto-merge to GitHub\n- [#44](https://github.com/victron-venus/venus-os-ci-toolkit/pull/44) \u2014 chore(deps): bump the codeql group with 2 updates\n- [#48](https://github.com/victron-venus/venus-os-ci-toolkit/pull/48) \u2014 chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0\n- [#45](https://github.com/victron-venus/venus-os-ci-toolkit/pull/45) \u2014 chore(deps): bump codecov/codecov-action from 4.6.0 to 7.1.1\n- [#46](https://github.com/victron-venus/venus-os-ci-toolkit/pull/46) \u2014 chore(deps): bump step-security/harden-runner from 2.20.1 to 2.21.1\n- [#47](https://github.com/victron-venus/venus-os-ci-toolkit/pull/47) \u2014 chore(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0\n- [#43](https://github.com/victron-venus/venus-os-ci-toolkit/pull/43) \u2014 ci: validate workflow contracts before expensive checks\n- [#49](https://github.com/victron-venus/venus-os-ci-toolkit/pull/49) \u2014 fix: wait for fresh executing release run status\n- [#50](https://github.com/victron-venus/venus-os-ci-toolkit/pull/50) \u2014 Skip heavy CI and releases for documentation-only changes\n- [#51](https://github.com/victron-venus/venus-os-ci-toolkit/pull/51) \u2014 ci: retain required CodeQL for toolkit documentation changes\n- [#54](https://github.com/victron-venus/venus-os-ci-toolkit/pull/54) \u2014 feat: gate reviewed merges and select trusted metadata runners\n- [#53](https://github.com/victron-venus/venus-os-ci-toolkit/pull/53) \u2014 ci: prepare k3s runner routing for private OTTPlay workflows\n- [#55](https://github.com/victron-venus/venus-os-ci-toolkit/pull/55) \u2014 feat: recover metadata approval through exact-head dispatch\n- [#56](https://github.com/victron-venus/venus-os-ci-toolkit/pull/56) \u2014 fix: isolate metadata Python from persistent workspace imports\n- [#57](https://github.com/victron-venus/venus-os-ci-toolkit/pull/57) \u2014 feat: deliver qualified vendor artifacts through signed PRs\n- [#59](https://github.com/victron-venus/venus-os-ci-toolkit/pull/59) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/actions/setup-python from 6da015c8cece60541100e55c14829f2c34a01d6e to 733de629b521477102822ccfcc855427de2f2b08\n- [#60](https://github.com/victron-venus/venus-os-ci-toolkit/pull/60) \u2014 chore(deps): bump dtolnay/rust-toolchain from 6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 to 02cb101ec7c40f2c49e1d9714d64511d8e1b74de\n- [#62](https://github.com/victron-venus/venus-os-ci-toolkit/pull/62) \u2014 chore(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.1\n- [#61](https://github.com/victron-venus/venus-os-ci-toolkit/pull/61) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/actions/setup-go from 6da015c8cece60541100e55c14829f2c34a01d6e to 63e105d2eed5bde74f8b8060c2a7b5ae16cec7f1\n- [#58](https://github.com/victron-venus/venus-os-ci-toolkit/pull/58) \u2014 chore(deps): bump the codeql group across 1 directory with 2 updates\n- [#63](https://github.com/victron-venus/venus-os-ci-toolkit/pull/63) \u2014 fix: approve same-repository bot PRs with an independent Actions identity\n- [#64](https://github.com/victron-venus/venus-os-ci-toolkit/pull/64) \u2014 fix(release): verify opt-in credentials for historical publication\n- [#65](https://github.com/victron-venus/venus-os-ci-toolkit/pull/65) \u2014 fix(release): skip proven superseded automatic candidates\n- [#66](https://github.com/victron-venus/venus-os-ci-toolkit/pull/66) \u2014 Stream release payload verification with bounded memory\n- [#67](https://github.com/victron-venus/venus-os-ci-toolkit/pull/67) \u2014 Explain rejected vendor run states safely\n- [#68](https://github.com/victron-venus/venus-os-ci-toolkit/pull/68) \u2014 fix(release): ignore download counters in candidate identity\n- [#69](https://github.com/victron-venus/venus-os-ci-toolkit/pull/69) \u2014 Stream accepted RC payload verification\n- [#70](https://github.com/victron-venus/venus-os-ci-toolkit/pull/70) \u2014 Bound release receipt reads before enforcing the size limit\n- [#71](https://github.com/victron-venus/venus-os-ci-toolkit/pull/71) \u2014 Replace release metadata atomically without clobbering hard-link aliases\n- [#72](https://github.com/victron-venus/venus-os-ci-toolkit/pull/72) \u2014 fix(release): report all final-build toolchain drift\n- [#73](https://github.com/victron-venus/venus-os-ci-toolkit/pull/73) \u2014 refactor: clarify release API tests and CI scope documentation\n- [#75](https://github.com/victron-venus/venus-os-ci-toolkit/pull/75) \u2014 Improve release scheduling and reject incompatible workflow sources before publication\n- [#76](https://github.com/victron-venus/venus-os-ci-toolkit/pull/76) \u2014 fix: anchor verified image output to an explicit root\n- [#77](https://github.com/victron-venus/venus-os-ci-toolkit/pull/77) \u2014 fix: identify failed release asset uploads\n- [#78](https://github.com/victron-venus/venus-os-ci-toolkit/pull/78) \u2014 Preserve RC eligibility when nightly repeats qualified source\n- [#79](https://github.com/victron-venus/venus-os-ci-toolkit/pull/79) \u2014 Assemble verified native AMD64 and ARM64 OCI release assets\n- [#81](https://github.com/victron-venus/venus-os-ci-toolkit/pull/81) \u2014 Request CodeRabbit reviews for low-star public repositories\n- [#82](https://github.com/victron-venus/venus-os-ci-toolkit/pull/82) \u2014 Pin CodeRabbit caller example to reviewed toolkit commit\n- [#80](https://github.com/victron-venus/venus-os-ci-toolkit/pull/80) \u2014 fix: exclude fixture projects from pytest collection\n- [#83](https://github.com/victron-venus/venus-os-ci-toolkit/pull/83) \u2014 fix: verify native OCI filesystem and provenance before assembly\n- [#84](https://github.com/victron-venus/venus-os-ci-toolkit/pull/84) \u2014 ci: replace split action updates with atomic Renovate batches\n- [#74](https://github.com/victron-venus/venus-os-ci-toolkit/pull/74) \u2014 Fail early when a final build receives a different runner image\n- [#85](https://github.com/victron-venus/venus-os-ci-toolkit/pull/85) \u2014 ci: sign Renovate updates and fail on missing workflow permission\n- [#86](https://github.com/victron-venus/venus-os-ci-toolkit/pull/86) \u2014 ci: reject mutable generator action pins\n- [#87](https://github.com/victron-venus/venus-os-ci-toolkit/pull/87) \u2014 chore(deps): update github actions and reusable workflows\n- [#88](https://github.com/victron-venus/venus-os-ci-toolkit/pull/88) \u2014 fix(release): skip closed-cycle packages while retaining full CI\n- [#90](https://github.com/victron-venus/venus-os-ci-toolkit/pull/90) \u2014 fix(ci): avoid runner churn on PR description edits\n- [#92](https://github.com/victron-venus/venus-os-ci-toolkit/pull/92) \u2014 ci: register inverter-climate for centralized Renovate\n- [#91](https://github.com/victron-venus/venus-os-ci-toolkit/pull/91) \u2014 chore(deps): update github actions and reusable workflows\n- [#89](https://github.com/victron-venus/venus-os-ci-toolkit/pull/89) \u2014 security: harden CI permissions and require complete security scans\n- [#93](https://github.com/victron-venus/venus-os-ci-toolkit/pull/93) \u2014 fix(ci): validate immutable references in every workflow\n- [#94](https://github.com/victron-venus/venus-os-ci-toolkit/pull/94) \u2014 chore(deps): update github actions and reusable workflows\n- [#95](https://github.com/victron-venus/venus-os-ci-toolkit/pull/95) \u2014 Fail closed on Python coverage uploader integrity errors\n- [#96](https://github.com/victron-venus/venus-os-ci-toolkit/pull/96) \u2014 fix(ci): forward explicit validation OIDC permissions\n- [#97](https://github.com/victron-venus/venus-os-ci-toolkit/pull/97) \u2014 feat(ci): centralize declarative Codecov publication\n- [#98](https://github.com/victron-venus/venus-os-ci-toolkit/pull/98) \u2014 fix(ci): isolate coverage adoption from release upgrades\n- [#100](https://github.com/victron-venus/venus-os-ci-toolkit/pull/100) \u2014 feat(ci): add opt-in shared self-hosted runner routing\n- [#101](https://github.com/victron-venus/venus-os-ci-toolkit/pull/101) \u2014 ci: prepare public runner reserve adoption and controller\n- [#102](https://github.com/victron-venus/venus-os-ci-toolkit/pull/102) \u2014 ci: prepare isolated ephemeral public standby pools\n- [#103](https://github.com/victron-venus/venus-os-ci-toolkit/pull/103) \u2014 fix(ci): make gVisor reserve bootstrap compatible and faster\n- [#99](https://github.com/victron-venus/venus-os-ci-toolkit/pull/99) \u2014 chore(deps): update github actions and reusable workflows\n- [#104](https://github.com/victron-venus/venus-os-ci-toolkit/pull/104) \u2014 docs: separate reusable CI guidance from operator inventories\n- [#105](https://github.com/victron-venus/venus-os-ci-toolkit/pull/105) \u2014 fix: keep operator inventories outside public source\n- [#106](https://github.com/victron-venus/venus-os-ci-toolkit/pull/106) \u2014 chore(deps): update github actions and reusable workflows\n- [#107](https://github.com/victron-venus/venus-os-ci-toolkit/pull/107) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions\n- [#108](https://github.com/victron-venus/venus-os-ci-toolkit/pull/108) \u2014 feat: request bounded CodeRabbit autofix after completed reviews\n- [#111](https://github.com/victron-venus/venus-os-ci-toolkit/pull/111) \u2014 Enforce minimum strength for delivery signing keys\n- [#112](https://github.com/victron-venus/venus-os-ci-toolkit/pull/112) \u2014 fix(ci): validate opted-in Python projects against uv.lock\n- [#109](https://github.com/victron-venus/venus-os-ci-toolkit/pull/109) \u2014 Enforce source-bound release notes and document security practices\n- [#110](https://github.com/victron-venus/venus-os-ci-toolkit/pull/110) \u2014 Simplify metadata validation and verify coverage producer identity\n- [#114](https://github.com/victron-venus/venus-os-ci-toolkit/pull/114) \u2014 Document the verified TLS profile for release helpers\n- [#113](https://github.com/victron-venus/venus-os-ci-toolkit/pull/113) \u2014 Validate Renovate signing key strength before dependency updates\n- [#115](https://github.com/victron-venus/venus-os-ci-toolkit/pull/115) \u2014 Preserve validated release typing in the toolkit source\n- [#116](https://github.com/victron-venus/venus-os-ci-toolkit/pull/116) \u2014 Keep Python build backends inside the reviewed lockfile\n- [#117](https://github.com/victron-venus/venus-os-ci-toolkit/pull/117) \u2014 fix: validate nested workflow permissions without early exits\n- [#119](https://github.com/victron-venus/venus-os-ci-toolkit/pull/119) \u2014 ci: analyze the Go Scorecard adapter with CodeQL\n- [#120](https://github.com/victron-venus/venus-os-ci-toolkit/pull/120) \u2014 refactor: clarify validation patterns without changing accepted input\n- [#121](https://github.com/victron-venus/venus-os-ci-toolkit/pull/121) \u2014 fix: verify TFLint downloads and run Terraform lint checks\n- [#123](https://github.com/victron-venus/venus-os-ci-toolkit/pull/123) \u2014 fix(ci): honor and verify the Terraform runtime version\n- [#122](https://github.com/victron-venus/venus-os-ci-toolkit/pull/122) \u2014 Pin shared Python and Go analysis tools\n- [#124](https://github.com/victron-venus/venus-os-ci-toolkit/pull/124) \u2014 fix(ci): enforce locked dependencies in reusable Python and Go workflows\n- [#126](https://github.com/victron-venus/venus-os-ci-toolkit/pull/126) \u2014 Test unreceipted assets and ASCII nightly identifiers\n- [#127](https://github.com/victron-venus/venus-os-ci-toolkit/pull/127) \u2014 fix(ci): update workflow dependencies and prevent partial CodeQL upgrades\n- [#128](https://github.com/victron-venus/venus-os-ci-toolkit/pull/128) \u2014 feat(release): add explicit fast beta validation profiles\n- [#125](https://github.com/victron-venus/venus-os-ci-toolkit/pull/125) \u2014 fix: restore release analysis and patch Go toolchains\n- [#129](https://github.com/victron-venus/venus-os-ci-toolkit/pull/129) \u2014 chore(deps): update github actions and reusable workflows\n- [#131](https://github.com/victron-venus/venus-os-ci-toolkit/pull/131) \u2014 fix(ci): update workflows and patch Go analysis dependencies\n- [#132](https://github.com/victron-venus/venus-os-ci-toolkit/pull/132) \u2014 fix: recognize rendered missing-registry diagnostics\n- [#133](https://github.com/victron-venus/venus-os-ci-toolkit/pull/133) \u2014 chore(deps): update github actions and reusable workflows\n- [#134](https://github.com/victron-venus/venus-os-ci-toolkit/pull/134) \u2014 fix(release): retry transient GitHub metadata reads safely\n- [#137](https://github.com/victron-venus/venus-os-ci-toolkit/pull/137) \u2014 fix(release): reject ambiguous GitHub absence responses\n- [#136](https://github.com/victron-venus/venus-os-ci-toolkit/pull/136) \u2014 fix(renovate): enroll both DESLOC repositories\n- [#138](https://github.com/victron-venus/venus-os-ci-toolkit/pull/138) \u2014 ci: include integration patterns in Renovate sweep\n- [#139](https://github.com/victron-venus/venus-os-ci-toolkit/pull/139) \u2014 fix(release): use authoritative GitHub HTTP response status\n- [#135](https://github.com/victron-venus/venus-os-ci-toolkit/pull/135) \u2014 chore(deps): update github actions and reusable workflows\n- [#140](https://github.com/victron-venus/venus-os-ci-toolkit/pull/140) \u2014 feat(release): verify signed source and artifact inventories\n- [#141](https://github.com/victron-venus/venus-os-ci-toolkit/pull/141) \u2014 Preserve verified detached provenance for repeatable OCI payloads\n- [#142](https://github.com/victron-venus/venus-os-ci-toolkit/pull/142) \u2014 Reduce reserve guard polling while preserving admission safety\n- [#143](https://github.com/victron-venus/venus-os-ci-toolkit/pull/143) \u2014 Support verified detached provenance for native OCI assembly\n- [#144](https://github.com/victron-venus/venus-os-ci-toolkit/pull/144) \u2014 Release metadata runners between reviewed merge evaluations\n- [#145](https://github.com/victron-venus/venus-os-ci-toolkit/pull/145) \u2014 fix: keep reviewed scan progressing after merge rejections\n- [#146](https://github.com/victron-venus/venus-os-ci-toolkit/pull/146) \u2014 chore(deps): update github actions and reusable workflows\n- [#147](https://github.com/victron-venus/venus-os-ci-toolkit/pull/147) \u2014 feat(ci): qualify public release candidates with bounded fuzzing\n- [#148](https://github.com/victron-venus/venus-os-ci-toolkit/pull/148) \u2014 fix(release): preserve bounded SBOMs and reviewed subprocess contracts\n- [#149](https://github.com/victron-venus/venus-os-ci-toolkit/pull/149) \u2014 fix(release): publish after gate-approved dependency skips\n- [#150](https://github.com/victron-venus/venus-os-ci-toolkit/pull/150) \u2014 fix(ci): honor release contract Python requirements\n- [#152](https://github.com/victron-venus/venus-os-ci-toolkit/pull/152) \u2014 refactor(release): simplify HTTP header parsing\n- [#151](https://github.com/victron-venus/venus-os-ci-toolkit/pull/151) \u2014 Preserve package imports and fail-closed release gates\n- [#154](https://github.com/victron-venus/venus-os-ci-toolkit/pull/154) \u2014 Publish versioned toolkit source candidates with RC parser qualification\n- [#155](https://github.com/victron-venus/venus-os-ci-toolkit/pull/155) \u2014 fix(release): provide accepted toolkit source release notes\n- [#156](https://github.com/victron-venus/venus-os-ci-toolkit/pull/156) \u2014 fix(release): close raw descriptors when file wrapping fails\n- [#153](https://github.com/victron-venus/venus-os-ci-toolkit/pull/153) \u2014 feat(fuzz): support bounded JVM release-candidate targets\n\n\n\n\n\nAll 188 commits\n\n- [664f091c8319](https://github.com/victron-venus/venus-os-ci-toolkit/commit/664f091c8319c329ba1c4228b1319472fa41716d) \u2014 ci: standardize gated releases and local private validation (#32)\n- [78784a3db025](https://github.com/victron-venus/venus-os-ci-toolkit/commit/78784a3db025c94ad194cfeca41bf0477a121ed9) \u2014 fix: validate nested workflow permissions before release rollout (#33)\n- [b901499a3de9](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b901499a3de99677a709a6853cc70e56f475170a) \u2014 fix: approve trusted PRs independently of automerge labels (#34)\n- [85e004f45cd2](https://github.com/victron-venus/venus-os-ci-toolkit/commit/85e004f45cd274926ec705ce1047f9eaee8d52fc) \u2014 docs: document public application release recovery (#35)\n- [c87d0d5f9883](https://github.com/victron-venus/venus-os-ci-toolkit/commit/c87d0d5f98835762b3ea3daf814df56df602e7b2) \u2014 feat: freeze release version plans before packaging\n- [fc404f055bbd](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fc404f055bbd72d9355f90d023065273d8016932) \u2014 fix: confine release CLI paths and preserve retired asset guards\n- [e58d0c49bdf2](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e58d0c49bdf2868d77a5300021cce594a490a542) \u2014 ci: exclude confirmed release document false positives\n- [5671b9a05817](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5671b9a05817576a8ae6bd69cacfb3202c60ad0a) \u2014 test: use one import style for legacy release fixtures\n- [ec0ddd7b1e0b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ec0ddd7b1e0bd7311c337f322d80a6d47eeaced9) \u2014 Merge pull request #36 from victron-venus/feat/release-version-plan\n- [763a3e52b349](https://github.com/victron-venus/venus-os-ci-toolkit/commit/763a3e52b3493a74083a6a47f66678fbab3d5b91) \u2014 fix: honor checkout filters in version guards\n- [ba7c4ece1188](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ba7c4ece1188974df04799158e35603e968a4bac) \u2014 fix: support OCI artifact attestations\n- [58176c8e6f11](https://github.com/victron-venus/venus-os-ci-toolkit/commit/58176c8e6f1184c2f82d62c2678ad397cdd6969f) \u2014 Merge pull request #37 from victron-venus/fix/release-artifact-validation\n- [553cc6204939](https://github.com/victron-venus/venus-os-ci-toolkit/commit/553cc62049396c2b57d3ea21a480f7a69842d1a4) \u2014 docs: define Tauri release version projections (#38)\n- [58b0879de831](https://github.com/victron-venus/venus-os-ci-toolkit/commit/58b0879de83172ce521edf2af552d65e3cac3599) \u2014 fix: bound nightly versions and explicitly scope release secrets (#39)\n- [ddfb0d25a742](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ddfb0d25a7428cb74e3d30a115b15a3a78e74ddd) \u2014 fix: reject mixed CodeQL versions before rendering release workflows (#40)\n- [7f10b0844b2f](https://github.com/victron-venus/venus-os-ci-toolkit/commit/7f10b0844b2f6c7bde5029f7d2e1f5ad983e84c5) \u2014 fix: approve Dependabot PRs with GITHUB_TOKEN (#41)\n- [186b9463d0d7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/186b9463d0d78ef46c7a2ed5313c8866eed46765) \u2014 ci: run validation once and delegate protected auto-merge to GitHub (#42)\n- [4702d6930516](https://github.com/victron-venus/venus-os-ci-toolkit/commit/4702d693051653d72ed99eef1fc9917874790a4f) \u2014 chore(deps): bump the codeql group with 2 updates (#44)\n- [9620882e1395](https://github.com/victron-venus/venus-os-ci-toolkit/commit/9620882e139520b5767bab8c23238e82372cf19d) \u2014 chore(deps): bump actions/setup-node from 4.4.0 to 7.0.0 (#48)\n- [bb8fe19c2553](https://github.com/victron-venus/venus-os-ci-toolkit/commit/bb8fe19c2553f35e530a0a466bc3ff73a5c3aac6) \u2014 chore(deps): bump codecov/codecov-action from 4.6.0 to 7.1.1 (#45)\n- [4134c5c16b71](https://github.com/victron-venus/venus-os-ci-toolkit/commit/4134c5c16b7157cff7da15432727c33e8a9199c1) \u2014 chore(deps): bump step-security/harden-runner from 2.20.1 to 2.21.1 (#46)\n- [1e17ee4e0717](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1e17ee4e0717242d7c8d74f3f9b19c452eee5b24) \u2014 chore(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 (#47)\n- [b6f9eba75c40](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b6f9eba75c400111a724c4c7a28310e6216a99fc) \u2014 ci: validate workflow contracts before expensive checks (#43)\n- [222689b49ba3](https://github.com/victron-venus/venus-os-ci-toolkit/commit/222689b49ba3ee2d2606c2e8d0dc853de3ccb220) \u2014 fix: wait for fresh executing release run status (#49)\n- [dc291e8c6635](https://github.com/victron-venus/venus-os-ci-toolkit/commit/dc291e8c6635d8a0c5d2cc33a4ffd83d1956625b) \u2014 Skip heavy CI and releases for documentation-only changes (#50)\n- [d0eff82dd3db](https://github.com/victron-venus/venus-os-ci-toolkit/commit/d0eff82dd3db5364b2d03382cce1ba0af227de78) \u2014 ci: retain required CodeQL for toolkit documentation changes (#51)\n- [86f6952b2889](https://github.com/victron-venus/venus-os-ci-toolkit/commit/86f6952b288960e94a6e41a26524493d874ceceb) \u2014 feat: gate reviewed merges and select trusted metadata runners (#54)\n- [ea1f1af3c3fc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ea1f1af3c3fc18142044314daf85cdd8c72e0a3c) \u2014 ci: prepare k3s runner routing for private OTTPlay workflows (#53)\n- [c91a28507234](https://github.com/victron-venus/venus-os-ci-toolkit/commit/c91a2850723477d372b35d5eb2ab784268d76c5f) \u2014 feat: recover metadata approval through exact-head dispatch (#55)\n- [f5b3e5a84f51](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f5b3e5a84f5138bd7e1fa357297a017a6e54890c) \u2014 fix: isolate metadata Python from runner workspace imports (#56)\n- [733de629b521](https://github.com/victron-venus/venus-os-ci-toolkit/commit/733de629b521477102822ccfcc855427de2f2b08) \u2014 feat: deliver qualified vendor artifacts through signed PRs (#57)\n- [250ac348559b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/250ac348559b5bd75d704525fdfdd34fae6eaca6) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/actions/setup-python (#59)\n- [2d0ac2393034](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2d0ac239303453b1312e5f0ffd662e685ac2be77) \u2014 chore(deps): bump dtolnay/rust-toolchain (#60)\n- [63e105d2eed5](https://github.com/victron-venus/venus-os-ci-toolkit/commit/63e105d2eed5bde74f8b8060c2a7b5ae16cec7f1) \u2014 chore(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.1 (#62)\n- [abe2a7150312](https://github.com/victron-venus/venus-os-ci-toolkit/commit/abe2a7150312908331b36598ac51caa6a6f893ca) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/actions/setup-go (#61)\n- [2eba893e177d](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2eba893e177dbeabc2bf93739334bc4da5dc5ab1) \u2014 chore(deps): bump the codeql group across 1 directory with 2 updates (#58)\n- [5179fd434cde](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5179fd434cde1ddcb03afd93ebba43e234c9a435) \u2014 fix: independently approve same-repository bot-authored PRs\n- [c5727a4b7dcd](https://github.com/victron-venus/venus-os-ci-toolkit/commit/c5727a4b7dcda5d3c769823310144e3ee88ed606) \u2014 Merge pull request #63 from victron-venus/fix/automation-pr-feedback\n- [81e4447350b7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/81e4447350b7edb6e345192585e9c6539728c3bb) \u2014 fix(release): verify opt-in credentials for historical publication\n- [b1379701745d](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b1379701745de1aefebddb60e674a68a81289da9) \u2014 fix(ci): preserve full validation until change scope is explicitly enabled\n- [abc204420c44](https://github.com/victron-venus/venus-os-ci-toolkit/commit/abc204420c44110b0e9d281ace0a768d5a5a70ba) \u2014 Merge pull request #64 from victron-venus/fix/release-publication-token-20260928\n- [73daa871b253](https://github.com/victron-venus/venus-os-ci-toolkit/commit/73daa871b253a389c03c371713767ac41871d40e) \u2014 fix(release): skip proven superseded automatic candidates\n- [83cf262d5df5](https://github.com/victron-venus/venus-os-ci-toolkit/commit/83cf262d5df588b5779228edcca84da5b575ac20) \u2014 Merge pull request #65 from victron-venus/fix/superseded-automatic-release-20260928\n- [9be7c2e1753b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/9be7c2e1753b70b54e5057e52333dd00ac74fb32) \u2014 Stream release payload verification with bounded memory (#66)\n- [25f56bb98f1c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/25f56bb98f1cbdb388735c7c2c53e8028993caeb) \u2014 Explain rejected vendor run states without exposing API values (#67)\n- [bce4aac88f50](https://github.com/victron-venus/venus-os-ci-toolkit/commit/bce4aac88f50366ff6e140bdc0b179c12f23c0f5) \u2014 fix(release): ignore download counters in candidate identity (#68)\n- [f12221eed248](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f12221eed248804d7ca8a652407e900765e5a400) \u2014 Stream accepted RC payload verification (#69)\n- [2d1ff9bf4de0](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2d1ff9bf4de00fbb6d5bc1d5d797be23a69b32b8) \u2014 fix(release): bound receipt reads before size validation (#70)\n- [9fa406fa1d76](https://github.com/victron-venus/venus-os-ci-toolkit/commit/9fa406fa1d76bc2ceb1a54ad6ffe6211662242a2) \u2014 fix: replace release evidence outputs atomically (#71)\n- [c4214b771eb4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/c4214b771eb4257ed42419ed4c506bd261b99f2c) \u2014 fix: report complete final-build toolchain drift (#72)\n- [6b18a89f16c8](https://github.com/victron-venus/venus-os-ci-toolkit/commit/6b18a89f16c874cbaa960a6f54a784c5753aeb63) \u2014 refactor: clarify release transport and exception contracts (#73)\n- [f23f592060f0](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f23f592060f0b4c028d0b91edff0fa10b14df50f) \u2014 Improve release scheduling and reject incompatible workflow sources before publication (#75)\n- [6c0598127f38](https://github.com/victron-venus/venus-os-ci-toolkit/commit/6c0598127f38928b0e65e15a01eb93879e6e2968) \u2014 fix: anchor verified image output to an explicit root (#76)\n- [fadf720a452d](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fadf720a452d216f81c60ee74096febd63c0caec) \u2014 fix: identify failed release asset uploads (#77)\n- [fca833a9da6b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fca833a9da6b49116444ffd7ac6739e08f9cbc61) \u2014 fix: preserve RC eligibility during redundant nightly publication (#78)\n- [db6a937bd8b1](https://github.com/victron-venus/venus-os-ci-toolkit/commit/db6a937bd8b15409d9abefe574565001deda7b4b) \u2014 Assemble verified native AMD64 and ARM64 OCI release assets (#79)\n- [b81ed0aec645](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b81ed0aec645591f0c82a778eb8e3115db86f9ed) \u2014 Request advisory CodeRabbit reviews for low-star public repositories (#81)\n- [1e80a5b1eab5](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1e80a5b1eab5199c486dc66b478e7fe0cbcba8a4) \u2014 Pin CodeRabbit caller example to reviewed toolkit release (#82)\n- [632da306326b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/632da306326ba268053e005f985d4d5ffddafc3a) \u2014 fix: exclude fixture projects from pytest collection (#80)\n- [68c5a5654d87](https://github.com/victron-venus/venus-os-ci-toolkit/commit/68c5a5654d87041faddba4eb80cd92d818aad275) \u2014 fix: verify native OCI filesystem and provenance before assembly (#83)\n- [fac4ecd53f91](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fac4ecd53f91c8fc4495fe0eaf524d34c6e5d74b) \u2014 ci: replace split action updates with atomic Renovate batches (#84)\n- [57e1a0385d73](https://github.com/victron-venus/venus-os-ci-toolkit/commit/57e1a0385d7370d7f90a46bb9a52ccaf9ac733b8) \u2014 Fail early when a final build receives a different runner image (#74)\n- [e0e05c70eacc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e0e05c70eaccf01ae092f07b0a553c113c82c1dd) \u2014 ci: sign Renovate updates and fail on missing workflow permission (#85)\n- [64c15c96f351](https://github.com/victron-venus/venus-os-ci-toolkit/commit/64c15c96f351edc808ce21e2423077417c73a9de) \u2014 ci: reject mutable action generator pins (#86)\n- [deaedc64aeaf](https://github.com/victron-venus/venus-os-ci-toolkit/commit/deaedc64aeafdf6e33e9870dd53eddd3018f5e69) \u2014 chore(deps): update github actions and reusable workflows (#87)\n- [8c1e7ba32f93](https://github.com/victron-venus/venus-os-ci-toolkit/commit/8c1e7ba32f93d6ce9cbaf0fc5cfdf091cc4b1558) \u2014 fix(release): skip closed-cycle packages while retaining full CI (#88)\n- [29a852ec4d14](https://github.com/victron-venus/venus-os-ci-toolkit/commit/29a852ec4d1466fcbd9598dd01352a8d8454312d) \u2014 fix(ci): avoid runner churn on PR description edits (#90)\n- [2401ecd3adbb](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2401ecd3adbb4e539d59dd9df21b15da5aa68089) \u2014 ci: register inverter-climate for centralized Renovate (#92)\n- [a86c2c0647cd](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a86c2c0647cd48c0ddeab99083cda0ae7f9d5f7e) \u2014 chore(deps): update github actions and reusable workflows (#91)\n- [2f0cbb2e321b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2f0cbb2e321b5b5dcd1febe0a56faa3920fc7be3) \u2014 security: harden CI permissions and require complete security scans (#89)\n- [f96a5ff0e1e4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f96a5ff0e1e4ff7cf2c8bf0f44fbd30e9bc74266) \u2014 fix(ci): validate immutable references in every workflow (#93)\n- [829a9f9aeac0](https://github.com/victron-venus/venus-os-ci-toolkit/commit/829a9f9aeac0fdecc54f67eebdb65103473495ba) \u2014 chore(deps): update github actions and reusable workflows (#94)\n- [ae314dd023e4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ae314dd023e48e3a4651996132f332a894efc8d9) \u2014 Fail closed on coverage uploader verification errors (#95)\n- [27fbd9bc03fc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/27fbd9bc03fc0bfc2059b3e7bcf113757ece6f5c) \u2014 fix(ci): forward explicitly selected validation OIDC permissions (#96)\n- [0582ac703ff4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/0582ac703ff47fd0cde42d5fff695c0569ca8392) \u2014 feat(ci): centralize declarative Codecov publication (#97)\n- [f9e0d35bedfc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f9e0d35bedfcbfb1ac4a39248c1864b45732f59e) \u2014 fix(ci): isolate coverage adoption from release upgrades (#98)\n- [a3456eaa36c6](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a3456eaa36c6004eee85fa83daea714f2cee588a) \u2014 feat(ci): add opt-in shared self-hosted runner routing (#100)\n- [62220e4aa7c7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/62220e4aa7c79b15089008b2a8b42c7806bc4b58) \u2014 ci: prepare public runner reserve adoption and controller (#101)\n- [e8120d333122](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e8120d3331224312f15e226803298298109af99e) \u2014 ci: prepare isolated ephemeral public standby pools (#102)\n- [5f5ff3846aac](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5f5ff3846aacee0edfbeadeb316ee68525e9208d) \u2014 fix(ci): make gVisor reserve bootstrap compatible and faster (#103)\n- [72c202b5ac03](https://github.com/victron-venus/venus-os-ci-toolkit/commit/72c202b5ac03676d479d7c8703892be75fbe7ced) \u2014 chore(deps): update github actions and reusable workflows (#99)\n- [00a87520d2e1](https://github.com/victron-venus/venus-os-ci-toolkit/commit/00a87520d2e10649020dd7e69437032b83744651) \u2014 docs: separate reusable CI guidance from operator inventories (#104)\n- [062d60e8892d](https://github.com/victron-venus/venus-os-ci-toolkit/commit/062d60e8892d4a97e11f5985d0914d5b19fcd24e) \u2014 fix: keep operator inventories outside public source (#105)\n- [dceed6ce56af](https://github.com/victron-venus/venus-os-ci-toolkit/commit/dceed6ce56af841f729297eec10129a61fd44df9) \u2014 chore(deps): update github actions and reusable workflows (#106)\n- [774ce8c74d6f](https://github.com/victron-venus/venus-os-ci-toolkit/commit/774ce8c74d6f82fe09c5c33ac9fb3158c2bb908a) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions (#107)\n- [1e310388f2c8](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1e310388f2c8b95df7940a2ca9d818a9a3040ddc) \u2014 feat: request bounded CodeRabbit autofix after completed reviews\n- [84f48589324c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/84f48589324c4b8b51c903839b96a1fa0302ec82) \u2014 fix: authenticate CodeRabbit status events and API records\n- [ba44ba6d9b63](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ba44ba6d9b63e884a5bde2dd30a990bb434cfe74) \u2014 Merge pull request #108 from victron-venus/feat/coderabbit-autofix\n- [f01bb37a9f45](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f01bb37a9f4500497a5fea3c82af6df1a263ac7d) \u2014 Require source-bound human release notes for opted-in consumers\n- [cc1d1f9ddb78](https://github.com/victron-venus/venus-os-ci-toolkit/commit/cc1d1f9ddb782a20905ad09f855260e61426fff2) \u2014 Normalize vendored release-note test imports\n- [91279ffea46b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/91279ffea46b08c6acb8ec439bf372615317ee37) \u2014 Validate release notes before evidence and publication state writes\n- [2e77561a0093](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2e77561a009328169759841e50d21d5fff514fbe) \u2014 Require Python static analysis in toolkit validation\n- [73986983fb74](https://github.com/victron-venus/venus-os-ci-toolkit/commit/73986983fb74b489af72e7cfdd8f4bfc66333229) \u2014 fix: accept CRLF notes without weakening source checks\n- [2c11e3c75e2f](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2c11e3c75e2fde3787d4719127482bdbfbea6308) \u2014 fix: bound TOML adapter parsing and tighten release tests\n- [2d4da2b50ecf](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2d4da2b50ecf688a17fe48f172748601341d7dd4) \u2014 refactor: separate metadata parsing and artifact validation\n- [9dd211aa50a9](https://github.com/victron-venus/venus-os-ci-toolkit/commit/9dd211aa50a9ae8442b03539570caddc7329408b) \u2014 fix: scan TOML table headers without backtracking\n- [e00dfa83960a](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e00dfa83960a2fed14ba29b0e4531397f56fdb7e) \u2014 security: enforce minimum strength for delivery signing keys\n- [ec99f37e82ce](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ec99f37e82ce290117fd457beb94ae44ee8b11ec) \u2014 fix: ignore fenced examples when validating release guidance\n- [3eec2c8f7a40](https://github.com/victron-venus/venus-os-ci-toolkit/commit/3eec2c8f7a400c216a33ea445caf412e66d90f2f) \u2014 refactor: isolate manifest asset validation\n- [b07aa2101447](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b07aa21014470fef42d314147446eb7f1bfe31b7) \u2014 Merge branch 'codex/public-openssf-20261008' into codex/shared-quality-20261008\n- [1fe2cdd7af22](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1fe2cdd7af227c06809a86b39f33f135f16b635b) \u2014 fix: validate coverage producer workflow and upload action identities\n- [a2e03275b79b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a2e03275b79b03fa94e7355d8169aed6cbd983d1) \u2014 refactor: preserve ASCII-only release version matching\n- [64778cbbbe5b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f) \u2014 Merge pull request #111 from victron-venus/codex/signing-key-baseline-20261008\n- [63bd94a59464](https://github.com/victron-venus/venus-os-ci-toolkit/commit/63bd94a5946479b0f9ddc4f6ff0dcdd5f791c395) \u2014 refactor: extract release preparation and workflow helpers\n- [2f04c13ad248](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2f04c13ad2481828ef9a0186537c3936a37d2781) \u2014 Merge remote-tracking branch 'origin/main' into codex/public-openssf-20261008\n- [b385d87ebce4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b385d87ebce408cbc0d7887659ca2684ddd4c328) \u2014 fix(ci): install locked dependencies for release contracts\n- [253fc654e373](https://github.com/victron-venus/venus-os-ci-toolkit/commit/253fc654e373467a4d49c4f1f5b3df0db187e106) \u2014 refactor(release): separate staging and receipt validations\n- [d1849c47cd3b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/d1849c47cd3b1c57393d9271d66f901ce324cefd) \u2014 fix: require visible release guidance outside HTML comments\n- [fea4fdefd8c2](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fea4fdefd8c2ba1cd9b898aa149d85f1bc273186) \u2014 Merge branch 'codex/public-openssf-20261008' into codex/shared-quality-20261008\n- [a689dec8607b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a689dec8607b3ae479e41cbec37dc02111cf6f7d) \u2014 style: keep release guidance tests portable to consumer lint\n- [cab6d07238d7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/cab6d07238d76225fc0afffd99378d9c865b89b7) \u2014 Merge branch 'codex/public-openssf-20261008' into codex/shared-quality-20261008\n- [366c7cfb901a](https://github.com/victron-venus/venus-os-ci-toolkit/commit/366c7cfb901ad619ee62efc5f25c09d9d8fa5b1b) \u2014 refactor: share release publication assertions and test path constants\n- [e6623daeee9d](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e6623daeee9d1bbb855ee3774cb2f46bdf375690) \u2014 Merge branch 'codex/public-openssf-20261008' into codex/shared-quality-20261008\n- [bc0ba73a23e3](https://github.com/victron-venus/venus-os-ci-toolkit/commit/bc0ba73a23e33fca06932bf464cfbe7fc60e068a) \u2014 refactor: separate consumer source conversion from rendering\n- [bdb3169a08e7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/bdb3169a08e797528badc41382c3e169c875c906) \u2014 refactor: remove redundant attestation return\n- [47ff99558a14](https://github.com/victron-venus/venus-os-ci-toolkit/commit/47ff99558a14e7541a34c94fb44927987c6d9354) \u2014 fix: stop release sections at higher-level headings\n- [01c9781ef10f](https://github.com/victron-venus/venus-os-ci-toolkit/commit/01c9781ef10fe9d0f946ca95e93dcead30b0b9d6) \u2014 fix: stop release sections at higher-level headings\n- [e011559075bd](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e011559075bd07dddb648ee5f3c82400fd62ebb5) \u2014 fix: recognize empty ATX headings as section boundaries\n- [ebf8d56fcac7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ebf8d56fcac7e72acd81de8217eef9882df3d017) \u2014 fix: recognize empty ATX headings as section boundaries\n- [f21a577a8f1a](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f21a577a8f1ada0fd8edb7471eb384e0bdda2a17) \u2014 fix: reject ambiguous underlined release headings\n- [6cd21f50cd70](https://github.com/victron-venus/venus-os-ci-toolkit/commit/6cd21f50cd7061e46170417dddc6ab393bbd7df0) \u2014 fix: reject ambiguous underlined release headings\n- [f028700ee61e](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f028700ee61eff6d4fc88ae654ed0c0d09e82ff1) \u2014 style: format release section regression tests\n- [6f3bac867a10](https://github.com/victron-venus/venus-os-ci-toolkit/commit/6f3bac867a101441e029ee7c20c5aa92541eb308) \u2014 style: format release section regression tests\n- [f5e209ec2491](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f5e209ec2491adcefab94530ec2fc04ef227d366) \u2014 test: isolate release notes exception assertion\n- [3533a43322cb](https://github.com/victron-venus/venus-os-ci-toolkit/commit/3533a43322cb351433ca8e90b786f14edcea7725) \u2014 fix: clean failed release staging without removing existing output\n- [4895f852f87c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/4895f852f87ca1f27e2bc75e24c5c792e4f95aa6) \u2014 fix: reject release guidance containing only headings or separators\n- [37246ea0d715](https://github.com/victron-venus/venus-os-ci-toolkit/commit/37246ea0d715df1f8dc1c1bf3a439fad0c490212) \u2014 fix: reject release guidance containing only headings or separators\n- [ee889042bb47](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ee889042bb47426f61b427a0463b72068736bb82) \u2014 refactor: make release channel selection explicit\n- [d8089003f436](https://github.com/victron-venus/venus-os-ci-toolkit/commit/d8089003f43637ee420fa4cbcccdf11f5d21e469) \u2014 fix: reject empty release guidance containers\n- [e71fe68c3e91](https://github.com/victron-venus/venus-os-ci-toolkit/commit/e71fe68c3e91f01c6141a2eb6460445bc5bfb5b3) \u2014 fix: reject empty release guidance containers\n- [9e41c363f4de](https://github.com/victron-venus/venus-os-ci-toolkit/commit/9e41c363f4dec0156552da36ef0de3da366aa4fe) \u2014 fix: preserve tab-indented release guidance code\n- [02416e9703fc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/02416e9703fc0095d3d13a4f29de2d1448b309e0) \u2014 fix: preserve tab-indented release guidance code\n- [933366a03bae](https://github.com/victron-venus/venus-os-ci-toolkit/commit/933366a03bae3a5b50e9b3eb6fff97ee9417a766) \u2014 fix(ci): validate opted-in Python projects against uv.lock (#112)\n- [10208f8d60d8](https://github.com/victron-venus/venus-os-ci-toolkit/commit/10208f8d60d8369ea151b596da1016c0af41be17) \u2014 Merge remote-tracking branch 'origin/main' into codex/public-openssf-20261008\n- [a872536bbd4b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a872536bbd4b5b42d5f05828c71b938c4715b6aa) \u2014 Merge remote-tracking branch 'origin/codex/public-openssf-20261008' into codex/shared-quality-20261008\n- [5149aa658bcb](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5149aa658bcb97a10779ccf7499d5e9f15162344) \u2014 fix: parse quoted TOML assignment keys without splitting literals\n- [1ca33c3d0b13](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1ca33c3d0b131393d14374a9d0072e1cc98bc276) \u2014 Merge pull request #109 from victron-venus/codex/public-openssf-20261008\n- [8bc3a4177ed0](https://github.com/victron-venus/venus-os-ci-toolkit/commit/8bc3a4177ed0f761e2abc71401d6431c58c49a51) \u2014 Merge remote-tracking branch 'origin/main' into codex/shared-quality-20261008\n- [d90475b452ba](https://github.com/victron-venus/venus-os-ci-toolkit/commit/d90475b452bac604ae44d77182aa5216a596c420) \u2014 fix: recognize closing ATX hashes in release headings\n- [ab9f337e5fa4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ab9f337e5fa49c263c873d65c9e50dde7249af56) \u2014 test: isolate release-note rejection assertions\n- [549ccf1ccf5c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/549ccf1ccf5cdc59fb04774e1d129277e6d91c38) \u2014 Merge pull request #110 from victron-venus/codex/shared-quality-20261008\n- [00458988c937](https://github.com/victron-venus/venus-os-ci-toolkit/commit/00458988c937365ef05c784db8049c82c434e5ed) \u2014 Document the verified TLS profile for release helpers (#114)\n- [f953d1bc2c9a](https://github.com/victron-venus/venus-os-ci-toolkit/commit/f953d1bc2c9ac1dbf4b2718099f4982593d2203e) \u2014 Validate Renovate signing key strength before dependency updates (#113)\n- [c644b8291bd9](https://github.com/victron-venus/venus-os-ci-toolkit/commit/c644b8291bd97110ee161586b6ab170b352bbf9b) \u2014 fix: preserve validated release toolkit typing in source (#115)\n- [3f7d3ff94d1c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/3f7d3ff94d1c693f32f4f92d17f7eb04883b4e7e) \u2014 Keep Python build backends inside the reviewed lockfile (#116)\n- [da245993a9bc](https://github.com/victron-venus/venus-os-ci-toolkit/commit/da245993a9bca428be83bdffb699fe5bd8235228) \u2014 fix: validate nested workflow permissions without early exits (#117)\n- [8d039779d6be](https://github.com/victron-venus/venus-os-ci-toolkit/commit/8d039779d6be430a512f03f404385d9e7e8cbb69) \u2014 ci: analyze the Go Scorecard adapter with CodeQL (#119)\n- [7d8db7d28d56](https://github.com/victron-venus/venus-os-ci-toolkit/commit/7d8db7d28d5683ed85cc97627a4557b1f7be5692) \u2014 refactor: clarify validation patterns without changing accepted input (#120)\n- [ff94b2aa8419](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ff94b2aa84190b38aee8d6588ec09e47acd26688) \u2014 fix: verify TFLint downloads and run Terraform lint checks (#121)\n- [ba1e3e781078](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ba1e3e7810783dca5ba6dec85274e2df60bdeef1) \u2014 fix(ci): honor and verify the Terraform runtime version (#123)\n- [737112cd6fa4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/737112cd6fa446ee097572817c124b3c95ec27a3) \u2014 Pin shared Python and Go analysis tools (#122)\n- [b8154dfcf2d4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b8154dfcf2d4cf829cb41514ef3cbf82c68a418f) \u2014 fix(ci): enforce locked dependencies in reusable Python and Go workflows (#124)\n- [dc1cc0b02ecd](https://github.com/victron-venus/venus-os-ci-toolkit/commit/dc1cc0b02ecdec3e121934975655ca02fceea763) \u2014 Test unreceipted assets and ASCII nightly identifiers (#126)\n- [5ec4c925c865](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5ec4c925c86558ee4cdd2bd76a4cb5c17c90d23f) \u2014 fix(ci): update workflow dependencies and prevent partial CodeQL upgrades (#127)\n- [1bd42a9dcaf2](https://github.com/victron-venus/venus-os-ci-toolkit/commit/1bd42a9dcaf2695ff6a4c28cf94ce4329ebb9267) \u2014 feat(release): support explicit fast beta validation profiles (#128)\n- [b93b2e5dd292](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b93b2e5dd29237f254e5273acf91272abbcd33d9) \u2014 fix: restore release analysis and patch Go toolchains (#125)\n- [5892b68cf18a](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5892b68cf18ac330b76773532ca28bb716492fe9) \u2014 chore(deps): update github actions and reusable workflows (#129)\n- [a233ffee5ed9](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a233ffee5ed9ad5a95b2fc5f6da12f55bd8e407a) \u2014 chore(deps): update github actions and reusable workflows\n- [7fe36145b8a6](https://github.com/victron-venus/venus-os-ci-toolkit/commit/7fe36145b8a68298fd8f368c4f7274659d51678f) \u2014 fix(security): patch HTTP/2 dependency in Go analysis tools\n- [b0734fc822f7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b0734fc822f78434c69dc8de9b272bdac007c6c3) \u2014 fix(ci): consume patched Go analysis tool lockfiles\n- [b72d2448b7b8](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b72d2448b7b8e6856d2df63880ea773c13f1b975) \u2014 Merge pull request #131 from victron-venus/fix/ci-tooling-security-20261010\n- [de4848ae46c0](https://github.com/victron-venus/venus-os-ci-toolkit/commit/de4848ae46c03248095a31edc937cddd523d7ac0) \u2014 fix: recognize rendered missing-registry diagnostics (#132)\n- [ab9c71f0ca24](https://github.com/victron-venus/venus-os-ci-toolkit/commit/ab9c71f0ca24191a65220580635715160c31dd43) \u2014 chore(deps): update github actions and reusable workflows (#133)\n- [2d88b28f2fc4](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2d88b28f2fc427975c0fc85101fe9b3f7d9bf4c2) \u2014 fix(release): retry transient GitHub metadata reads safely (#134)\n- [2f6f86bcd8ea](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2f6f86bcd8ea1273e22d8b26f055ab2ae7a3fcb6) \u2014 fix(release): reject ambiguous GitHub absence responses (#137)\n- [82fde9e79903](https://github.com/victron-venus/venus-os-ci-toolkit/commit/82fde9e79903ef560135fee9578e5429a6b4cb4d) \u2014 fix(renovate): include both DESLOC repositories (#136)\n- [8ea04c923cde](https://github.com/victron-venus/venus-os-ci-toolkit/commit/8ea04c923cded4fee32ec8d3847d7d5a339ebc4b) \u2014 ci: include integration patterns in Renovate sweep (#138)\n- [a087b20d7f47](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a087b20d7f474fe4961ccd5c135160bf15f4a9ba) \u2014 fix(release): use authoritative GitHub HTTP response status (#139)\n- [de4013a2d488](https://github.com/victron-venus/venus-os-ci-toolkit/commit/de4013a2d48879ac9d77afbbf9267a0486c09272) \u2014 chore(deps): update github actions and reusable workflows (#135)\n- [7282a18bd597](https://github.com/victron-venus/venus-os-ci-toolkit/commit/7282a18bd5975975ec323ac765557cf0aec6e11d) \u2014 feat(release): verify signed source and artifact inventories (#140)\n- [10170124b258](https://github.com/victron-venus/venus-os-ci-toolkit/commit/10170124b2584d95000296b4cadcbcd25178084a) \u2014 Preserve verified detached provenance for repeatable OCI payloads (#141)\n- [b54c1932b09e](https://github.com/victron-venus/venus-os-ci-toolkit/commit/b54c1932b09e87122f5c71ad68311587f03ddb90) \u2014 Reduce reserve guard polling while preserving admission safety (#142)\n- [57b2dabd92f2](https://github.com/victron-venus/venus-os-ci-toolkit/commit/57b2dabd92f2e2a66b8b6b6879491d5cdb32fc00) \u2014 Support verified detached provenance for native OCI assembly (#143)\n- [05ffc3412133](https://github.com/victron-venus/venus-os-ci-toolkit/commit/05ffc34121336c40194c8f343cd99575950e7c46) \u2014 Release metadata runners between reviewed merge evaluations (#144)\n- [413248b9fdb7](https://github.com/victron-venus/venus-os-ci-toolkit/commit/413248b9fdb724e787097c5c56802412a49e9467) \u2014 fix: keep reviewed scan progressing after merge rejections (#145)\n- [21a442746108](https://github.com/victron-venus/venus-os-ci-toolkit/commit/21a442746108340ba4ddfce53a656689cc70af8c) \u2014 chore(deps): update github actions and reusable workflows (#146)\n- [373eaac8e45b](https://github.com/victron-venus/venus-os-ci-toolkit/commit/373eaac8e45b2ff2fbd4250ca4d55db3a28be3cc) \u2014 feat(ci): qualify public release candidates with bounded fuzzing (#147)\n- [74e4b82d651f](https://github.com/victron-venus/venus-os-ci-toolkit/commit/74e4b82d651ff5488e65ab0fdce8558b4c705665) \u2014 fix(release): preserve bounded SBOMs and reviewed subprocess contracts (#148)\n- [5e413f80a435](https://github.com/victron-venus/venus-os-ci-toolkit/commit/5e413f80a4353d328b4529eae57992ac3987e2dd) \u2014 fix(release): publish after gate-approved dependency skips (#149)\n- [8c0743a8db82](https://github.com/victron-venus/venus-os-ci-toolkit/commit/8c0743a8db82adb291eee77cbe4d9bfd07218ee3) \u2014 fix(ci): allow declared release contract Python (#150)\n- [21f8041a2a11](https://github.com/victron-venus/venus-os-ci-toolkit/commit/21f8041a2a11a13367f49a37e624ac51ab8c4481) \u2014 refactor(release): simplify HTTP header parsing (#152)\n- [2198e37e1395](https://github.com/victron-venus/venus-os-ci-toolkit/commit/2198e37e1395d5855d7cd9ec91a0a79e8b8ab334) \u2014 feat(fuzz): support bounded JVM release-candidate targets\n- [d55d9899310c](https://github.com/victron-venus/venus-os-ci-toolkit/commit/d55d9899310c9fb068fbdb36cdc42cc3f539d41c) \u2014 Preserve package imports and fail-closed release gates (#151)\n- [a06a3c072793](https://github.com/victron-venus/venus-os-ci-toolkit/commit/a06a3c0727939ed0f5589cec2a3051dbad0b3eda) \u2014 Publish versioned toolkit source candidates with RC parser qualification (#154)\n- [223f004f7108](https://github.com/victron-venus/venus-os-ci-toolkit/commit/223f004f710868b8891a0453bd78c71cd5926dc9) \u2014 fix(release): provide accepted toolkit source release notes (#155)\n- [fb370993d617](https://github.com/victron-venus/venus-os-ci-toolkit/commit/fb370993d61757a03b34f9cdfeebf184cde877a0) \u2014 fix(release): close raw descriptors when file wrapping fails (#156)\n- [0002b774a9e6](https://github.com/victron-venus/venus-os-ci-toolkit/commit/0002b774a9e68a6289a10897aa3a473c3410a08f) \u2014 Merge branch 'main' into codex/jvm-rc-fuzz-20261013\n- [3ee3558ff523](https://github.com/victron-venus/venus-os-ci-toolkit/commit/3ee3558ff523dc31d89d8f5e3fd39b98efe36f0a) \u2014 Merge pull request #153 from victron-venus/codex/jvm-rc-fuzz-20261013\n\n\n\n\n\n---\n\n## victron-venus/venus-os-integration-patterns \u2014 v0.1.2\n\n[Published stable release](https://github.com/victron-venus/venus-os-integration-patterns/releases/tag/v0.1.2)\n\n## Changes in 0.1.2\n\n### Added\n\n- RC-only fuzzing of real pure input handlers, with documented synthetic seeds and bounded execution.\n- Reviewed source archives with isolated acceptance, frozen versions, receipts and checksums.\n\n### Upgrade\n\nExtract the new source suite into a separate directory. Preserve local configuration\nand device state. This package does not deploy or install itself on any device.\n\n### Security\n\nThe source suite and test corpus contain no private captures or credentials.\nFuzz campaigns cannot contact devices; actual hardware acceptance is separate.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.2-rc.1](https://github.com/victron-venus/venus-os-integration-patterns/releases/tag/v0.1.2-rc.1).\n\nSource: `8f1c2bdbb86a93792aec3059be50e9d59491f7e1`\n\nValidation: https://github.com/victron-venus/venus-os-integration-patterns/actions/runs/38495982253\n\nPromotion: https://github.com/victron-venus/venus-os-integration-patterns/actions/runs/38510837803\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.1\n\nReleased source: [8f1c2bdbb86a](https://github.com/victron-venus/venus-os-integration-patterns/commit/8f1c2bdbb86a93792aec3059be50e9d59491f7e1).\nPrevious stable source: [546b45621ed0](https://github.com/victron-venus/venus-os-integration-patterns/commit/546b45621ed04841fc1ea46c5d4eb1015a9ae686).\n\n[Full source history](https://github.com/victron-venus/venus-os-integration-patterns/compare/546b45621ed04841fc1ea46c5d4eb1015a9ae686...8f1c2bdbb86a93792aec3059be50e9d59491f7e1). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 27 merged pull requests\n\n- [#22](https://github.com/victron-venus/venus-os-integration-patterns/pull/22) \u2014 ci: add nightly validation and local operations\n- [#23](https://github.com/victron-venus/venus-os-integration-patterns/pull/23) \u2014 Approve trusted PRs without requiring automerge\n- [#24](https://github.com/victron-venus/venus-os-integration-patterns/pull/24) \u2014 fix: pin auto-approval to merged toolkit commit\n- [#25](https://github.com/victron-venus/venus-os-integration-patterns/pull/25) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN\n- [#26](https://github.com/victron-venus/venus-os-integration-patterns/pull/26) \u2014 ci: consolidate validation and enable protected native auto-merge\n- [#27](https://github.com/victron-venus/venus-os-integration-patterns/pull/27) \u2014 build(deps): Bump python from `cad9a2c` to `caaf356` in /patterns/mqtt-to-dbus\n- [#28](https://github.com/victron-venus/venus-os-integration-patterns/pull/28) \u2014 build(deps): Bump python from `caaf356` to `51dafde` in /patterns/mqtt-to-dbus\n- [#29](https://github.com/victron-venus/venus-os-integration-patterns/pull/29) \u2014 build(deps): Update dbus-python requirement from &gt;=1.4.0 to &gt;=1.5.0 in /patterns/mqtt-to-dbus\n- [#30](https://github.com/victron-venus/venus-os-integration-patterns/pull/30) \u2014 ci: request advisory CodeRabbit reviews on new PRs\n- [#31](https://github.com/victron-venus/venus-os-integration-patterns/pull/31) \u2014 fix: register MQTT mappings before applying D-Bus updates\n- [#32](https://github.com/victron-venus/venus-os-integration-patterns/pull/32) \u2014 security: harden code-scanning workflows and CI permissions\n- [#33](https://github.com/victron-venus/venus-os-integration-patterns/pull/33) \u2014 fix(container): install GLib bindings and validate native bridge builds\n- [#34](https://github.com/victron-venus/venus-os-integration-patterns/pull/34) \u2014 ci: prepare optional runner reserve without enabling it\n- [#35](https://github.com/victron-venus/venus-os-integration-patterns/pull/35) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions\n- [#41](https://github.com/victron-venus/venus-os-integration-patterns/pull/41) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#42](https://github.com/victron-venus/venus-os-integration-patterns/pull/42) \u2014 Establish security and contribution evidence for OpenSSF\n- [#38](https://github.com/victron-venus/venus-os-integration-patterns/pull/38) \u2014 ci: update compatible actions together\n- [#43](https://github.com/victron-venus/venus-os-integration-patterns/pull/43) \u2014 ci: bump the ci-workflows group with 5 updates\n- [#44](https://github.com/victron-venus/venus-os-integration-patterns/pull/44) \u2014 Preserve MQTT bridge diagnostics and run its tests in CI\n- [#45](https://github.com/victron-venus/venus-os-integration-patterns/pull/45) \u2014 Simplify workflow graph validation without changing policy\n- [#46](https://github.com/victron-venus/venus-os-integration-patterns/pull/46) \u2014 Clarify Scorecard workflow assertion failures\n- [#47](https://github.com/victron-venus/venus-os-integration-patterns/pull/47) \u2014 ci: bump the ci-workflows group with 10 updates\n- [#49](https://github.com/victron-venus/venus-os-integration-patterns/pull/49) \u2014 ci: move Actions updates to shared Renovate policy\n- [#48](https://github.com/victron-venus/venus-os-integration-patterns/pull/48) \u2014 ci: bump python from `51dafde` to `a2b82f3` in /patterns/mqtt-to-dbus\n- [#50](https://github.com/victron-venus/venus-os-integration-patterns/pull/50) \u2014 chore(deps): update github actions and reusable workflows\n- [#51](https://github.com/victron-venus/venus-os-integration-patterns/pull/51) \u2014 fix: validate complete Scorecard 5.6 reports\n- [#52](https://github.com/victron-venus/venus-os-integration-patterns/pull/52) \u2014 feat: qualify source releases with RC-only conversion fuzzing\n\n\n\n\n\nAll 30 commits\n\n- [b19be48bdec7](https://github.com/victron-venus/venus-os-integration-patterns/commit/b19be48bdec76e550d967ab26dc9f7a6ee316f09) \u2014 ci: add nightly validation and local operations (#22)\n- [fba5056b0b18](https://github.com/victron-venus/venus-os-integration-patterns/commit/fba5056b0b18cf04e8c93841a771126f98081e16) \u2014 ci: approve trusted PRs without the automerge label (#23)\n- [9c2192051325](https://github.com/victron-venus/venus-os-integration-patterns/commit/9c21920513251047abfbcb1d093be21bfe34edba) \u2014 fix: pin auto-approval to merged toolkit commit (#24)\n- [8f84626f88cb](https://github.com/victron-venus/venus-os-integration-patterns/commit/8f84626f88cbc966bedf04335a77de6200f9a0a7) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN (#25)\n- [0e639293be17](https://github.com/victron-venus/venus-os-integration-patterns/commit/0e639293be17b827c62b2367a053f8fc8aeda607) \u2014 ci: consolidate required validation and use protected native auto-merge (#26)\n- [1f533b68fd4a](https://github.com/victron-venus/venus-os-integration-patterns/commit/1f533b68fd4abb3a656b19ef9b7bd0b454dc1cd5) \u2014 build(deps): Bump python in /patterns/mqtt-to-dbus (#27)\n- [1412324e2b47](https://github.com/victron-venus/venus-os-integration-patterns/commit/1412324e2b4784e42c0c2c15178834f65f08f88e) \u2014 build(deps): Bump python in /patterns/mqtt-to-dbus (#28)\n- [b2cfe5e65920](https://github.com/victron-venus/venus-os-integration-patterns/commit/b2cfe5e659205f97c85ad28e2d965f016a4f17d8) \u2014 build(deps): Update dbus-python requirement in /patterns/mqtt-to-dbus (#29)\n- [3b578c04b6ef](https://github.com/victron-venus/venus-os-integration-patterns/commit/3b578c04b6ef99049e3d0f64eebd7fefb7fb5f89) \u2014 ci: request advisory CodeRabbit reviews on new PRs (#30)\n- [83cfe38a3dc3](https://github.com/victron-venus/venus-os-integration-patterns/commit/83cfe38a3dc3e84db1aa92dd8848efb58d58d414) \u2014 fix: register MQTT mappings before applying D-Bus updates\n- [753b32299e8f](https://github.com/victron-venus/venus-os-integration-patterns/commit/753b32299e8f38744be2f9a0d7d50c4f0beee078) \u2014 fix: validate mapping defaults and D-Bus integer bounds\n- [a057ff839f18](https://github.com/victron-venus/venus-os-integration-patterns/commit/a057ff839f183a2006349947154d29283389ea1c) \u2014 fix: reject conflicting D-Bus mapping types\n- [3b00818067e2](https://github.com/victron-venus/venus-os-integration-patterns/commit/3b00818067e21b58e9839b7ed66c6b3b14093a92) \u2014 Merge pull request #31 from victron-venus/codex/review-venus-os-integration-patterns\n- [96295b239fc3](https://github.com/victron-venus/venus-os-integration-patterns/commit/96295b239fc3ea199916cbe0585098526efc1978) \u2014 security: harden code-scanning workflows and CI permissions (#32)\n- [562348619414](https://github.com/victron-venus/venus-os-integration-patterns/commit/562348619414925ff732d0ffbb8ae6a6977a3f7f) \u2014 fix(container): install GLib bindings and validate native bridge builds (#33)\n- [f47d2d40b0a7](https://github.com/victron-venus/venus-os-integration-patterns/commit/f47d2d40b0a787def15fdab05ac3a649d3892282) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#34)\n- [ddf0175d5b65](https://github.com/victron-venus/venus-os-integration-patterns/commit/ddf0175d5b65fde4474dd1c10f40d2415b2d1ae2) \u2014 ci: apply StepSecurity runner and workflow hardening (#35)\n- [5cdeb1e5d6b8](https://github.com/victron-venus/venus-os-integration-patterns/commit/5cdeb1e5d6b8dc28f605f5f200b94a108c067378) \u2014 ci: request CodeRabbit autofix after completed reviews (#41)\n- [cc8bfe40c4b2](https://github.com/victron-venus/venus-os-integration-patterns/commit/cc8bfe40c4b2e7732fab83c432357d7d44da0b8d) \u2014 Establish security and contribution evidence for OpenSSF (#42)\n- [dbc23619cf40](https://github.com/victron-venus/venus-os-integration-patterns/commit/dbc23619cf40022e93992c180f186f8e5c902acc) \u2014 ci: update compatible actions together (#38)\n- [62580a962e68](https://github.com/victron-venus/venus-os-integration-patterns/commit/62580a962e68fe20de4cfb97bfc12f9af43c97e0) \u2014 ci: bump the ci-workflows group with 5 updates (#43)\n- [1947a75a31df](https://github.com/victron-venus/venus-os-integration-patterns/commit/1947a75a31df68d517cfe87dc76b455fdf6ac2b5) \u2014 Preserve MQTT bridge diagnostics and run its tests in CI (#44)\n- [677431803e9e](https://github.com/victron-venus/venus-os-integration-patterns/commit/677431803e9e21cd53e19db58491e42047c641aa) \u2014 Backport reviewed toolkit validation maintenance (#45)\n- [a04e10e58b18](https://github.com/victron-venus/venus-os-integration-patterns/commit/a04e10e58b1862d011a2db0921f5e9a27f2d1a1f) \u2014 Clarify Scorecard workflow assertion failures (#46)\n- [6c9b3670c143](https://github.com/victron-venus/venus-os-integration-patterns/commit/6c9b3670c143479336fc2937f3e9d7de20899943) \u2014 ci: bump the ci-workflows group with 10 updates (#47)\n- [76da685a01d9](https://github.com/victron-venus/venus-os-integration-patterns/commit/76da685a01d9c15eab4f7a665daa83cf9dcf05e4) \u2014 ci: move action updates to shared Renovate policy (#49)\n- [838fbe6e294d](https://github.com/victron-venus/venus-os-integration-patterns/commit/838fbe6e294d1c651cf6cdc59a508ba7b0c7f25f) \u2014 ci: bump python from `51dafde` to `a2b82f3` in /patterns/mqtt-to-dbus (#48)\n- [7d01171a11bb](https://github.com/victron-venus/venus-os-integration-patterns/commit/7d01171a11bb0ba0f598220dd91dc9188ab06bc3) \u2014 chore(deps): update github actions and reusable workflows (#50)\n- [e3d9356d4400](https://github.com/victron-venus/venus-os-integration-patterns/commit/e3d9356d440092f54d9f461367a4c29585810718) \u2014 fix: validate Scorecard 5.6 results without skipping checks (#51)\n- [8f1c2bdbb86a](https://github.com/victron-venus/venus-os-integration-patterns/commit/8f1c2bdbb86a93792aec3059be50e9d59491f7e1) \u2014 feat: qualify source releases with RC-only conversion fuzzing (#52)\n\n\n\n\n\n---\n\n## victron-venus/dbus-emporia-vue \u2014 v1.0.10\n\n[Published stable release](https://github.com/victron-venus/dbus-emporia-vue/releases/tag/v1.0.10)\n\n## Changes in 1.0.10\n\n### Maintenance\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n- Reject malformed or excessively nested Home Assistant JSON, numeric overflow and non-finite converted power.\n- Resolve release channel validation imports in both package and script execution modes.\n\n### Upgrade\n\nUse the documented update procedure and retain local configuration. Automated tests do not establish target-device acceptance.\n\n### Security\n\nRelease qualification now requires isolated fuzzing against the candidate source. Report findings through SECURITY.md.\n\n## Build provenance\n\nPromoted unchanged from [v1.0.10-rc.1](https://github.com/victron-venus/dbus-emporia-vue/releases/tag/v1.0.10-rc.1).\n\nSource: `d793bba05e6453d05fb2633e8889d34f51713fb2`\n\nValidation: https://github.com/victron-venus/dbus-emporia-vue/actions/runs/38496308529\n\nPromotion: https://github.com/victron-venus/dbus-emporia-vue/actions/runs/38510846251\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.0.9\n\nReleased source: [d793bba05e64](https://github.com/victron-venus/dbus-emporia-vue/commit/d793bba05e6453d05fb2633e8889d34f51713fb2).\nPrevious stable source: [e178c8fe22e1](https://github.com/victron-venus/dbus-emporia-vue/commit/e178c8fe22e1110b96243b4c644ebb298418c680).\n\n[Full source history](https://github.com/victron-venus/dbus-emporia-vue/compare/e178c8fe22e1110b96243b4c644ebb298418c680...d793bba05e6453d05fb2633e8889d34f51713fb2). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 2 merged pull requests\n\n- [#100](https://github.com/victron-venus/dbus-emporia-vue/pull/100) \u2014 docs: record verified signed stable and target acceptance\n- [#102](https://github.com/victron-venus/dbus-emporia-vue/pull/102) \u2014 Require bounded RC fuzzing with preserved parser regressions\n\n\n\n\n\nAll 2 commits\n\n- [269786598ebc](https://github.com/victron-venus/dbus-emporia-vue/commit/269786598ebc329b4643c4913d528300c1ef6058) \u2014 docs: record verified signed stable and target acceptance (#100)\n- [d793bba05e64](https://github.com/victron-venus/dbus-emporia-vue/commit/d793bba05e6453d05fb2633e8889d34f51713fb2) \u2014 feat(release): qualify public RCs with offline parser fuzzing (#102)\n\n\n\n\n\n---\n\n## victron-venus/dbus-virtual-battery \u2014 v2.7.10\n\n[Published stable release](https://github.com/victron-venus/dbus-virtual-battery/releases/tag/v2.7.10)\n\n## Changes in 2.7.10\n\n### Maintenance\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n- Reject invalid capacity and non-finite calculations; cap duration before conversion to seconds.\n\n### Upgrade\n\nUse the documented update procedure and retain local configuration. Automated tests do not establish target-device acceptance.\n\n### Security\n\nRelease qualification now requires isolated fuzzing against the candidate source. Report findings through SECURITY.md.\n\n## Build provenance\n\nPromoted unchanged from [v2.7.10-rc.2](https://github.com/victron-venus/dbus-virtual-battery/releases/tag/v2.7.10-rc.2).\n\nSource: `9584b4acf5a0d9d60b383ce1d67a5032d3c58ecb`\n\nValidation: https://github.com/victron-venus/dbus-virtual-battery/actions/runs/38510852701\n\nPromotion: https://github.com/victron-venus/dbus-virtual-battery/actions/runs/38511863402\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v2.7.9\n\nReleased source: [9584b4acf5a0](https://github.com/victron-venus/dbus-virtual-battery/commit/9584b4acf5a0d9d60b383ce1d67a5032d3c58ecb).\nPrevious stable source: [af08bdb5d6a9](https://github.com/victron-venus/dbus-virtual-battery/commit/af08bdb5d6a9c25b34913fe2149916df48a870bb).\n\n[Full source history](https://github.com/victron-venus/dbus-virtual-battery/compare/af08bdb5d6a9c25b34913fe2149916df48a870bb...9584b4acf5a0d9d60b383ce1d67a5032d3c58ecb). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 5 merged pull requests\n\n- [#94](https://github.com/victron-venus/dbus-virtual-battery/pull/94) \u2014 docs: verify accessibility and deployed runtime hardening\n- [#95](https://github.com/victron-venus/dbus-virtual-battery/pull/95) \u2014 docs: maintain awarded practices in roadmap\n- [#96](https://github.com/victron-venus/dbus-virtual-battery/pull/96) \u2014 chore(deps): update github actions and reusable workflows\n- [#99](https://github.com/victron-venus/dbus-virtual-battery/pull/99) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#97](https://github.com/victron-venus/dbus-virtual-battery/pull/97) \u2014 deps: update ruff requirement from &gt;=0.16.10 to &gt;=0.17.0\n\n\n\n\n\nAll 5 commits\n\n- [da809452979e](https://github.com/victron-venus/dbus-virtual-battery/commit/da809452979e1f1790b4cbdcfb1473e7705a3949) \u2014 docs: verify accessibility and deployed runtime hardening (#94)\n- [8c7f7af1c09d](https://github.com/victron-venus/dbus-virtual-battery/commit/8c7f7af1c09d1213590d18096684c5f0bf57e169) \u2014 docs: maintain awarded practices in roadmap (#95)\n- [3c455a5ca765](https://github.com/victron-venus/dbus-virtual-battery/commit/3c455a5ca7655ba170836594356090fd5e5aa55c) \u2014 chore(deps): update github actions and reusable workflows (#96)\n- [1a66531d87c2](https://github.com/victron-venus/dbus-virtual-battery/commit/1a66531d87c21ac518d4ef00ce6b8b1f7e1c69f4) \u2014 Require bounded RC fuzzing with documented targets and evidence (#99)\n- [9584b4acf5a0](https://github.com/victron-venus/dbus-virtual-battery/commit/9584b4acf5a0d9d60b383ce1d67a5032d3c58ecb) \u2014 deps: update ruff requirement from &gt;=0.16.10 to &gt;=0.17.0 (#97)\n\n\n\n\n\n---\n\n## victron-venus/dbus-pump \u2014 v0.1.7\n\n[Published stable release](https://github.com/victron-venus/dbus-pump/releases/tag/v0.1.7)\n\n## Changes in 0.1.7\n\n### Maintenance\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Upgrade\n\nUse the documented update procedure and retain local configuration. Automated tests do not establish target-device acceptance.\n\n### Security\n\nRelease qualification now requires isolated fuzzing against the candidate source. Report findings through SECURITY.md.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.7-rc.1](https://github.com/victron-venus/dbus-pump/releases/tag/v0.1.7-rc.1).\n\nSource: `3ee1012716f02f850c1e4c148349d40d256291fc`\n\nValidation: https://github.com/victron-venus/dbus-pump/actions/runs/38493011399\n\nPromotion: https://github.com/victron-venus/dbus-pump/actions/runs/38510861031\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.6\n\nReleased source: [3ee1012716f0](https://github.com/victron-venus/dbus-pump/commit/3ee1012716f02f850c1e4c148349d40d256291fc).\nPrevious stable source: [b44fdb6856ab](https://github.com/victron-venus/dbus-pump/commit/b44fdb6856ab371feb5a287a28440bd7d7894f21).\n\n[Full source history](https://github.com/victron-venus/dbus-pump/compare/b44fdb6856ab371feb5a287a28440bd7d7894f21...3ee1012716f02f850c1e4c148349d40d256291fc). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 3 merged pull requests\n\n- [#112](https://github.com/victron-venus/dbus-pump/pull/112) \u2014 docs: record verified signed stable and target acceptance\n- [#113](https://github.com/victron-venus/dbus-pump/pull/113) \u2014 chore(deps): update github actions and reusable workflows\n- [#114](https://github.com/victron-venus/dbus-pump/pull/114) \u2014 Require bounded RC fuzzing with documented targets and evidence\n\n\n\n\n\nAll 3 commits\n\n- [b1d72605da9d](https://github.com/victron-venus/dbus-pump/commit/b1d72605da9daa1a9b92039e921a107c0c0d2891) \u2014 docs: record verified signed stable and target acceptance (#112)\n- [a5106403aff4](https://github.com/victron-venus/dbus-pump/commit/a5106403aff44b7e6cdafa742b1f9c28d76bdd9a) \u2014 chore(deps): update github actions and reusable workflows (#113)\n- [3ee1012716f0](https://github.com/victron-venus/dbus-pump/commit/3ee1012716f02f850c1e4c148349d40d256291fc) \u2014 Require bounded RC fuzzing with documented targets and evidence (#114)\n\n\n\n\n\n---\n\n## victron-venus/dbus-ev \u2014 v0.2.8\n\n[Published stable release](https://github.com/victron-venus/dbus-ev/releases/tag/v0.2.8)\n\n## Changes in 0.2.8\n\n### Fixed\n\n- Add bounded native Go fuzz qualification for public release candidates, with\n  source-bound evidence, synthetic seeds and documented reproduction. PRs, betas\n  and nightlies retain ordinary tests without mutation campaigns.\n\n- Expose the charger projection as read-only telemetry and retain the existing freshness boundaries.\n- Update the optional vehicle engine's HTTP/2 dependencies and simplify Mercedes decoding, connection failures and HTTP client handling.\n- Interpret GitHub response status from the authoritative HTTP headers during release publication.\n\n### Upgrade\n\nExisting configuration and authentication data are retained. The optional engine now requires explicit `allowLegacyCrypto: true` for eight legacy provider templates; review [the compatibility policy](https://github.com/victron-venus/dbus-ev/blob/b310902dd35ee66350d19e0765ece87b6d06ec3e/docs/provider-cryptography.md) and rebuild the engine before enabling them. New provider integrations remain experimental; automated tests do not establish live vehicle acceptance. Beta and RC artifacts will be built under the new base version without reusing the existing 0.2.7 release tag.\n\n### Security\n\n- Require TLS 1.2 or newer, forward-secret AEAD TLS 1.2 suites and strong verified certificate keys throughout the optional engine, including BMW MQTT and Fiat Cognito.\n- Use cryptographic randomness for provider OAuth state/nonces and reject Bluelink CCI RSA encryption keys shorter than 2048 bits.\n- Disable known weak manufacturer crypto/authentication mechanisms by default, with a named per-configuration opt-in for compatibility. No live provider/account acceptance is implied.\n\nKeep provider tokens and credentials in the existing protected local configuration and exclude them from exported telemetry and logs. The charger projection remains read-only, and existing freshness checks continue to reject stale readings.\n\n## Build provenance\n\nPromoted unchanged from [v0.2.8-rc.1](https://github.com/victron-venus/dbus-ev/releases/tag/v0.2.8-rc.1).\n\nSource: `b310902dd35ee66350d19e0765ece87b6d06ec3e`\n\nValidation: https://github.com/victron-venus/dbus-ev/actions/runs/38488890257\n\nPromotion: https://github.com/victron-venus/dbus-ev/actions/runs/38510867981\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.2.7\n\nReleased source: [b310902dd35e](https://github.com/victron-venus/dbus-ev/commit/b310902dd35ee66350d19e0765ece87b6d06ec3e).\nPrevious stable source: [b86b67023fdc](https://github.com/victron-venus/dbus-ev/commit/b86b67023fdc810ddb987dca65318d02e7b417aa).\n\n[Full source history](https://github.com/victron-venus/dbus-ev/compare/b86b67023fdc810ddb987dca65318d02e7b417aa...b310902dd35ee66350d19e0765ece87b6d06ec3e). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 28 merged pull requests\n\n- [#94](https://github.com/victron-venus/dbus-ev/pull/94) \u2014 ci: prepare optional runner reserve without enabling it\n- [#93](https://github.com/victron-venus/dbus-ev/pull/93) \u2014 chore(deps): update github actions and reusable workflows\n- [#95](https://github.com/victron-venus/dbus-ev/pull/95) \u2014 chore(deps): bump multidict from 6.9.0 to 6.9.1\n- [#96](https://github.com/victron-venus/dbus-ev/pull/96) \u2014 chore(deps): update github actions and reusable workflows\n- [#97](https://github.com/victron-venus/dbus-ev/pull/97) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions\n- [#98](https://github.com/victron-venus/dbus-ev/pull/98) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#99](https://github.com/victron-venus/dbus-ev/pull/99) \u2014 Require source-bound release notes and document security process\n- [#100](https://github.com/victron-venus/dbus-ev/pull/100) \u2014 Use locked shared Python CI and clearer release validation tests\n- [#101](https://github.com/victron-venus/dbus-ev/pull/101) \u2014 Strengthen test diagnostics and invalid threshold regressions\n- [#102](https://github.com/victron-venus/dbus-ev/pull/102) \u2014 Simplify Home Assistant state normalization with regression coverage\n- [#103](https://github.com/victron-venus/dbus-ev/pull/103) \u2014 Simplify release guards and archive cleanup without changing behavior\n- [#104](https://github.com/victron-venus/dbus-ev/pull/104) \u2014 Separate Mercedes websocket header preparation\n- [#105](https://github.com/victron-venus/dbus-ev/pull/105) \u2014 refactor: isolate Mercedes connection failure handling\n- [#106](https://github.com/victron-venus/dbus-ev/pull/106) \u2014 refactor: clarify Mercedes adapter constants and local names\n- [#107](https://github.com/victron-venus/dbus-ev/pull/107) \u2014 Simplify Mercedes decoding and state rendering\n- [#108](https://github.com/victron-venus/dbus-ev/pull/108) \u2014 chore(deps): update github actions and reusable workflows\n- [#109](https://github.com/victron-venus/dbus-ev/pull/109) \u2014 chore(deps): update github actions and reusable workflows\n- [#110](https://github.com/victron-venus/dbus-ev/pull/110) \u2014 fix: patch vehicle engine HTTP/2 dependencies and update CI\n- [#111](https://github.com/victron-venus/dbus-ev/pull/111) \u2014 chore(deps): update github actions and reusable workflows\n- [#112](https://github.com/victron-venus/dbus-ev/pull/112) \u2014 fix: reject unsupported charger projection writes\n- [#114](https://github.com/victron-venus/dbus-ev/pull/114) \u2014 fix(release): use authoritative GitHub HTTP status\n- [#113](https://github.com/victron-venus/dbus-ev/pull/113) \u2014 chore(deps): update github actions and reusable workflows\n- [#115](https://github.com/victron-venus/dbus-ev/pull/115) \u2014 chore: prepare 0.2.8 release cycle\n- [#116](https://github.com/victron-venus/dbus-ev/pull/116) \u2014 fix(ci): align Scorecard completeness guard with pinned action\n- [#117](https://github.com/victron-venus/dbus-ev/pull/117) \u2014 chore(deps): update github actions and reusable workflows\n- [#119](https://github.com/victron-venus/dbus-ev/pull/119) \u2014 Harden provider TLS and record verified OpenSSF evidence\n- [#120](https://github.com/victron-venus/dbus-ev/pull/120) \u2014 Provide direct private conduct reporting contact\n- [#121](https://github.com/victron-venus/dbus-ev/pull/121) \u2014 Qualify public RCs with signed native fuzzing integration\n\n\n\n\n\nAll 28 commits\n\n- [10a1f448db2d](https://github.com/victron-venus/dbus-ev/commit/10a1f448db2d471c0bcf108a3b3c6aaee2b38a23) \u2014 ci: prepare optional runner reserve without enabling it (#94)\n- [3b703a60e242](https://github.com/victron-venus/dbus-ev/commit/3b703a60e2428248b894c464514708743cfff2c5) \u2014 chore(deps): update github actions and reusable workflows (#93)\n- [126f60be28e4](https://github.com/victron-venus/dbus-ev/commit/126f60be28e43179b1faf0f7c7c4cf0adaad2596) \u2014 chore(deps): bump multidict from 6.9.0 to 6.9.1 (#95)\n- [8a51a83b83e4](https://github.com/victron-venus/dbus-ev/commit/8a51a83b83e47a9955e6d3d029fec0270bbabb9e) \u2014 chore(deps): update github actions and reusable workflows (#96)\n- [ea4e4b707a2f](https://github.com/victron-venus/dbus-ev/commit/ea4e4b707a2f5b690391846b6c0ad4ad3ff38493) \u2014 \\[StepSecurity\\] ci: Harden GitHub Actions (#97)\n- [094d6f1eb23a](https://github.com/victron-venus/dbus-ev/commit/094d6f1eb23aad5a24723f022b14d926cf3895ea) \u2014 ci: request CodeRabbit autofix after completed reviews (#98)\n- [39c3c3b7138a](https://github.com/victron-venus/dbus-ev/commit/39c3c3b7138a5643c3476ee42e3e5803df8f5293) \u2014 Require source-bound release notes and document security process (#99)\n- [e57093cb6976](https://github.com/victron-venus/dbus-ev/commit/e57093cb697695acfe0f59ab4235c92ebb38624d) \u2014 Use locked shared Python CI and clearer release validation tests (#100)\n- [7972a2f5db94](https://github.com/victron-venus/dbus-ev/commit/7972a2f5db94e9ed4a41b35d3a022203a6e58a2a) \u2014 Strengthen test diagnostics and invalid threshold regressions (#101)\n- [893733c41621](https://github.com/victron-venus/dbus-ev/commit/893733c416210c7138bb1a133b49a9deab630c28) \u2014 Refactor Home Assistant state normalization without changing poll behavior (#102)\n- [18e2e7913775](https://github.com/victron-venus/dbus-ev/commit/18e2e79137758aacda0491f2c81214fbfee4a5a1) \u2014 Simplify release guards and archive cleanup without changing behavior (#103)\n- [6bedc2ae2b44](https://github.com/victron-venus/dbus-ev/commit/6bedc2ae2b44f970551f38c71e3bac2f8a05c1da) \u2014 refactor: separate Mercedes websocket header preparation (#104)\n- [7eff5e0a1303](https://github.com/victron-venus/dbus-ev/commit/7eff5e0a1303dfc919a87e1cc3ac9b08507ffc0b) \u2014 refactor: isolate Mercedes connection failure handling (#105)\n- [288e3ae52826](https://github.com/victron-venus/dbus-ev/commit/288e3ae5282622e2b91c045adb3d843e7ccb5201) \u2014 refactor: clarify Mercedes adapter constants and local names (#106)\n- [dc992781d53c](https://github.com/victron-venus/dbus-ev/commit/dc992781d53c281306341472cad1e63677558c40) \u2014 Simplify Mercedes decoding and state rendering (#107)\n- [69463990ba67](https://github.com/victron-venus/dbus-ev/commit/69463990ba67c9bd2422614d02fa8d4c87d75314) \u2014 chore(deps): update github actions and reusable workflows (#108)\n- [698e1450aa27](https://github.com/victron-venus/dbus-ev/commit/698e1450aa2783f0c133473d6975ec4d663b5d16) \u2014 chore(deps): update github actions and reusable workflows (#109)\n- [84ad2d403d56](https://github.com/victron-venus/dbus-ev/commit/84ad2d403d56460d7cb80e5dc8a2e5308a3f31a6) \u2014 fix: patch vehicle engine HTTP/2 dependencies and update CI (#110)\n- [a32a96e0337a](https://github.com/victron-venus/dbus-ev/commit/a32a96e0337a32145bc38b0d0ddd05074cf92ba1) \u2014 chore(deps): update github actions and reusable workflows (#111)\n- [365ad0281665](https://github.com/victron-venus/dbus-ev/commit/365ad02816657ef68277cb6918eb02a67c402ec1) \u2014 fix: expose charger projection as read-only telemetry (#112)\n- [cd8426ad1b58](https://github.com/victron-venus/dbus-ev/commit/cd8426ad1b5837b40b618a183d144363b2eb6d55) \u2014 fix(release): use authoritative GitHub HTTP status (#114)\n- [f27fe85e8be2](https://github.com/victron-venus/dbus-ev/commit/f27fe85e8be2c0210adca185d2252b0f005df8aa) \u2014 chore(deps): update github actions and reusable workflows (#113)\n- [194d9240574c](https://github.com/victron-venus/dbus-ev/commit/194d9240574c0b1f77549e69d5e954ca3e2ec9d4) \u2014 chore: prepare 0.2.8 release cycle (#115)\n- [f1cc90547608](https://github.com/victron-venus/dbus-ev/commit/f1cc90547608867187abfc53d310f4cb0c69bb0d) \u2014 fix(ci): align Scorecard completeness guard with pinned action (#116)\n- [4ea5bfffa441](https://github.com/victron-venus/dbus-ev/commit/4ea5bfffa441e4c5259e5564f1348781fb7ee32b) \u2014 chore(deps): update github actions and reusable workflows (#117)\n- [832230d38a09](https://github.com/victron-venus/dbus-ev/commit/832230d38a09506c3a213bf1b03edded246fc625) \u2014 Harden provider TLS and record verified OpenSSF evidence (#119)\n- [1ff0fa671423](https://github.com/victron-venus/dbus-ev/commit/1ff0fa6714231902a14cb6bb42a200dbc8bd4a7d) \u2014 Provide direct private conduct reporting contact (#120)\n- [b310902dd35e](https://github.com/victron-venus/dbus-ev/commit/b310902dd35ee66350d19e0765ece87b6d06ec3e) \u2014 Qualify public RCs with signed native fuzzing integration (#121)\n\n\n\n\n\n---\n\n## victron-venus/inverter-gateway \u2014 v0.4.2\n\n[Published stable release](https://github.com/victron-venus/inverter-gateway/releases/tag/v0.4.2)\n\n## Changes in 0.4.2\n\n### Changes\n\n- Enforce exact public-key strength for MQTT peers/trust roots and native HTTPS certificates, including rejection of 2047-bit RSA keys before application traffic.\n\n- Gate release candidates on bounded energy-source and controller-payload fuzz campaigns, retaining source-bound validation evidence.\n- Reuse fresh telemetry when deciding command availability, avoiding unnecessary state copies.\n- Replace the unmaintained PEM parser and refresh compatible dependencies.\n- Stop packaging on a binary-version mismatch, preserve reviewed release notes, and read release API status from HTTP headers.\n- Refresh shared CI actions, Sonar coverage for release helpers, and the optional runner reserve; GitHub-hosted runners remain the default.\n\n### Upgrade\n\nReplace RSA certificates below 2048 bits or unsupported weak curves before updating. Native HTTPS and explicitly configured MQTT roots now fail closed on weak certificates; weak system roots are excluded. Existing strong certificates and credentials remain usable. This candidate still requires independent validation against the intended equipment before production use.\n\n### Security\n\nReplace the unmaintained PEM parser and retain pinned CI dependencies. MQTT and HTTPS retain normal trust, hostname and signature verification with an additional key-strength floor; keep credentials outside published artifacts and maintain network isolation and independent equipment safeguards.\n\n## Build provenance\n\nPromoted unchanged from [v0.4.2-rc.2](https://github.com/victron-venus/inverter-gateway/releases/tag/v0.4.2-rc.2).\n\nSource: `48ae4bdcb5a70a3e05912760d49cb834a777cfc3`\n\nValidation: https://github.com/victron-venus/inverter-gateway/actions/runs/38512413293\n\nPromotion: https://github.com/victron-venus/inverter-gateway/actions/runs/38513263681\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.4.1\n\nReleased source: [48ae4bdcb5a7](https://github.com/victron-venus/inverter-gateway/commit/48ae4bdcb5a70a3e05912760d49cb834a777cfc3).\nPrevious stable source: [8d6f33eda723](https://github.com/victron-venus/inverter-gateway/commit/8d6f33eda723f26df27e9be4e443bf6b1fd73014).\n\n[Full source history](https://github.com/victron-venus/inverter-gateway/compare/8d6f33eda723f26df27e9be4e443bf6b1fd73014...48ae4bdcb5a70a3e05912760d49cb834a777cfc3). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 20 merged pull requests\n\n- [#41](https://github.com/victron-venus/inverter-gateway/pull/41) \u2014 ci: prepare optional runner reserve without enabling it\n- [#42](https://github.com/victron-venus/inverter-gateway/pull/42) \u2014 docs: connect gateway clients and energy API adapters\n- [#43](https://github.com/victron-venus/inverter-gateway/pull/43) \u2014 perf(state): borrow fresh telemetry for command availability\n- [#44](https://github.com/victron-venus/inverter-gateway/pull/44) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#57](https://github.com/victron-venus/inverter-gateway/pull/57) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#52](https://github.com/victron-venus/inverter-gateway/pull/52) \u2014 build: validate compatible dependencies and CI together\n- [#58](https://github.com/victron-venus/inverter-gateway/pull/58) \u2014 Require source-bound release notes and document security process\n- [#60](https://github.com/victron-venus/inverter-gateway/pull/60) \u2014 Replace unmaintained PEM parser and narrow CI permissions\n- [#61](https://github.com/victron-venus/inverter-gateway/pull/61) \u2014 Simplify nightly identity validation while preserving ASCII rules\n- [#59](https://github.com/victron-venus/inverter-gateway/pull/59) \u2014 build: bump the ci-workflows group across 1 directory with 8 updates\n- [#62](https://github.com/victron-venus/inverter-gateway/pull/62) \u2014 Isolate release validation failures in regression tests\n- [#63](https://github.com/victron-venus/inverter-gateway/pull/63) \u2014 Stop packaging when binary version verification fails\n- [#65](https://github.com/victron-venus/inverter-gateway/pull/65) \u2014 build: bump the ci-workflows group with 4 updates\n- [#64](https://github.com/victron-venus/inverter-gateway/pull/64) \u2014 Combine gateway runtime setup layers\n- [#66](https://github.com/victron-venus/inverter-gateway/pull/66) \u2014 fix(ci): include release helpers in Sonar analysis\n- [#68](https://github.com/victron-venus/inverter-gateway/pull/68) \u2014 fix: use HTTP headers for release API status\n- [#67](https://github.com/victron-venus/inverter-gateway/pull/67) \u2014 build: bump the ci-workflows group with 10 updates\n- [#69](https://github.com/victron-venus/inverter-gateway/pull/69) \u2014 chore: prepare release 0.4.2\n- [#70](https://github.com/victron-venus/inverter-gateway/pull/70) \u2014 ci: gate release candidates on bounded fuzzing\n- [#71](https://github.com/victron-venus/inverter-gateway/pull/71) \u2014 Enforce exact TLS key strength and document project assurance\n\n\n\n\n\nAll 20 commits\n\n- [e29df8caf5ba](https://github.com/victron-venus/inverter-gateway/commit/e29df8caf5bae9cb5e66c3a049643cd54dc27151) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#41)\n- [94d6a8ecd191](https://github.com/victron-venus/inverter-gateway/commit/94d6a8ecd19167b197494c835b49db6371ce9313) \u2014 docs: connect gateway clients and energy API adapters (#42)\n- [397fe8239504](https://github.com/victron-venus/inverter-gateway/commit/397fe8239504feb2493928395ac2a5dd8689d48d) \u2014 perf(state): borrow fresh telemetry for command availability (#43)\n- [d65359046853](https://github.com/victron-venus/inverter-gateway/commit/d653590468538333dd8c77f5284b59ea750b9ee7) \u2014 \\[StepSecurity\\] Apply security best practices (#44)\n- [7fe41df96909](https://github.com/victron-venus/inverter-gateway/commit/7fe41df969094574325ebd26df574c2646ea19db) \u2014 ci: request CodeRabbit autofix after completed reviews (#57)\n- [eae28f3cac70](https://github.com/victron-venus/inverter-gateway/commit/eae28f3cac70cc17d63bf77915a059b49f2cd436) \u2014 build: validate compatible dependencies and CI together (#52)\n- [9e4d2d1635d5](https://github.com/victron-venus/inverter-gateway/commit/9e4d2d1635d528e3c16a6fb7febddccce9575001) \u2014 Require source-bound release notes and document security process (#58)\n- [3d9850c3fcaa](https://github.com/victron-venus/inverter-gateway/commit/3d9850c3fcaaa15a081b93eabc9ee369dffe25b5) \u2014 Replace unmaintained PEM parser and narrow CI permissions (#60)\n- [17e70b430f14](https://github.com/victron-venus/inverter-gateway/commit/17e70b430f1473e4a0c7505aa74210e489c9308d) \u2014 Backport reviewed toolkit validation maintenance (#61)\n- [1fa7d20a0881](https://github.com/victron-venus/inverter-gateway/commit/1fa7d20a0881d50320e6429ddd902cec2406fa2a) \u2014 build: bump the ci-workflows group across 1 directory with 8 updates (#59)\n- [1802806f67af](https://github.com/victron-venus/inverter-gateway/commit/1802806f67af117d3500d92f999dcff2a58ca969) \u2014 Isolate release validation failures in regression tests (#62)\n- [471a966b5d24](https://github.com/victron-venus/inverter-gateway/commit/471a966b5d242526f4fa24b22ef06a48062a55ca) \u2014 Stop packaging when binary version verification fails (#63)\n- [0ecd089c466d](https://github.com/victron-venus/inverter-gateway/commit/0ecd089c466dada9299a4b01819e4fa71a6b4bac) \u2014 build: bump the ci-workflows group with 4 updates (#65)\n- [27dfce6bf551](https://github.com/victron-venus/inverter-gateway/commit/27dfce6bf551b65ff588318446d411b329371c02) \u2014 build: combine gateway runtime setup layers (#64)\n- [adc3fad7a015](https://github.com/victron-venus/inverter-gateway/commit/adc3fad7a01540cfe4d2c280e166a428adc15e24) \u2014 fix(ci): include release helpers in Sonar analysis (#66)\n- [15f523b1c3d8](https://github.com/victron-venus/inverter-gateway/commit/15f523b1c3d8b341b34f92717f24f4dfc58964c1) \u2014 fix: use HTTP headers for release API status (#68)\n- [d98919530e3a](https://github.com/victron-venus/inverter-gateway/commit/d98919530e3ae52ba4a43875c73379b147e00dd1) \u2014 build: bump the ci-workflows group with 10 updates (#67)\n- [88376aeb7e7b](https://github.com/victron-venus/inverter-gateway/commit/88376aeb7e7b88dfda1f90428bd8fee26e0660b4) \u2014 chore: prepare release 0.4.2 (#69)\n- [9c7836ad33da](https://github.com/victron-venus/inverter-gateway/commit/9c7836ad33da1efd22c0c12f35c55c889a4d1a0b) \u2014 ci: gate release candidates on bounded fuzzing (#70)\n- [48ae4bdcb5a7](https://github.com/victron-venus/inverter-gateway/commit/48ae4bdcb5a70a3e05912760d49cb834a777cfc3) \u2014 Enforce exact TLS key strength and document project assurance (#71)\n\n\n\n\n\n---\n\n## victron-venus/inverter-climate \u2014 v0.4.1\n\n[Published stable release](https://github.com/victron-venus/inverter-climate/releases/tag/v0.4.1)\n\n## Changes in 0.4.1\n\n### Release candidate validation\n\n- Require bounded fuzzing on public release candidates, with source-bound reports and retained diagnostics; beta and ordinary CI do not run mutation campaigns.\n\n### Release overview\n\nCoordinates climate setpoints with measured energy through Home Assistant and Venus OS. The existing README documents configuration and external interfaces for this development line.\n\n### Maintenance\n\n- Update the pinned container toolchain to Python 3.14 and uv 0.13.0 while keeping reproducible dependency installation.\n- Refresh shared CI workflow pins without enabling reserve runners by default.\n\n- Keep native installer terminal-exit detection linear for long whitespace-heavy `rc.local` lines while preserving existing shell text and hook placement.\n- Publish reviewed release notes from the exact source commit used to build each candidate, preserving build provenance.\n- Document contribution checks, confidential security reporting and the project-specific trust boundaries.\n\n### Upgrade\n\nHTTPS integrations now reject verified certificate chains containing RSA keys below 2048 bits or other unsupported public-key profiles. Replace weak endpoint/CA certificates before upgrading; see [TLS policy](https://github.com/victron-venus/inverter-climate/blob/323b17f3ae227d4e4fd9bab993a1d26426f918ab/docs/tls-policy.md). The Venus bundle remains pure Python and contains the new locked metadata-decoder dependencies. These changes do not introduce a configuration or data migration. Retain local configuration and credentials when using the documented update procedure. Validate the candidate on an isolated system before production use; automated checks do not establish hardware acceptance.\n\n### Security\n\nHome Assistant and Gateway HTTPS connections now enforce exact public-key sizes across the same connection's verified certificate chain, including its trust anchor, before sending authorization or application data. Ordinary hostname and trust verification remain enabled.\n\nPrivate vulnerability reporting and response policy are documented in SECURITY.md. This maintenance update strengthens release evidence and review instructions; it does not replace deployment authentication, network isolation or independent equipment safeguards. No new project CVE is announced by these changes.\n\n## Build provenance\n\nPromoted unchanged from [v0.4.1-rc.2](https://github.com/victron-venus/inverter-climate/releases/tag/v0.4.1-rc.2).\n\nSource: `323b17f3ae227d4e4fd9bab993a1d26426f918ab`\n\nValidation: https://github.com/victron-venus/inverter-climate/actions/runs/38510873848\n\nPromotion: https://github.com/victron-venus/inverter-climate/actions/runs/38511991828\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.4.0\n\nReleased source: [323b17f3ae22](https://github.com/victron-venus/inverter-climate/commit/323b17f3ae227d4e4fd9bab993a1d26426f918ab).\nPrevious stable source: [102066390d07](https://github.com/victron-venus/inverter-climate/commit/102066390d076a56ccc8bf8d98663da9119eaa34).\n\n[Full source history](https://github.com/victron-venus/inverter-climate/compare/102066390d076a56ccc8bf8d98663da9119eaa34...323b17f3ae227d4e4fd9bab993a1d26426f918ab). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 27 merged pull requests\n\n- [#13](https://github.com/victron-venus/inverter-climate/pull/13) \u2014 Pin dependencies\n- [#15](https://github.com/victron-venus/inverter-climate/pull/15) \u2014 ci: prepare optional runner reserve without enabling it\n- [#16](https://github.com/victron-venus/inverter-climate/pull/16) \u2014 docs: add climate integration project navigation\n- [#17](https://github.com/victron-venus/inverter-climate/pull/17) \u2014 Update GitHub Actions and reusable workflows\n- [#18](https://github.com/victron-venus/inverter-climate/pull/18) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#19](https://github.com/victron-venus/inverter-climate/pull/19) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#20](https://github.com/victron-venus/inverter-climate/pull/20) \u2014 Harden dependency installation and release evidence\n- [#21](https://github.com/victron-venus/inverter-climate/pull/21) \u2014 Pin patched uv bootstrap and release build tooling\n- [#22](https://github.com/victron-venus/inverter-climate/pull/22) \u2014 Keep native installer persistence matching linear\n- [#23](https://github.com/victron-venus/inverter-climate/pull/23) \u2014 Simplify release preparation checks and exception tests\n- [#24](https://github.com/victron-venus/inverter-climate/pull/24) \u2014 Isolate expected failures in climate tests\n- [#25](https://github.com/victron-venus/inverter-climate/pull/25) \u2014 Clarify validation and keep CodeQL reports on one baseline\n- [#26](https://github.com/victron-venus/inverter-climate/pull/26) \u2014 Clarify controller ownership and preheat decision stages\n- [#27](https://github.com/victron-venus/inverter-climate/pull/27) \u2014 Clarify installer validation and recovery stages\n- [#28](https://github.com/victron-venus/inverter-climate/pull/28) \u2014 Refactor climate runtime stages with behavior regressions\n- [#29](https://github.com/victron-venus/inverter-climate/pull/29) \u2014 Update python:3.12-slim Docker digest to 05cda97\n- [#30](https://github.com/victron-venus/inverter-climate/pull/30) \u2014 Enforce exact HTTPS key sizes without native runtime dependencies\n- [#31](https://github.com/victron-venus/inverter-climate/pull/31) \u2014 Classify Sonar tests and declare supported Python versions\n- [#32](https://github.com/victron-venus/inverter-climate/pull/32) \u2014 Update python:3.12-slim Docker digest to a6e34c5\n- [#33](https://github.com/victron-venus/inverter-climate/pull/33) \u2014 Update ghcr.io/astral-sh/uv Docker tag to v0.13.0\n- [#34](https://github.com/victron-venus/inverter-climate/pull/34) \u2014 Update Python container to 3.14 with immutable Renovate pins\n- [#36](https://github.com/victron-venus/inverter-climate/pull/36) \u2014 fix: use authoritative HTTP statuses in release automation\n- [#35](https://github.com/victron-venus/inverter-climate/pull/35) \u2014 Update GitHub Actions and reusable workflows\n- [#37](https://github.com/victron-venus/inverter-climate/pull/37) \u2014 chore(release): prepare the 0.4.1 development cycle\n- [#38](https://github.com/victron-venus/inverter-climate/pull/38) \u2014 Update the container runtime to Python 3.15 with regression coverage\n- [#39](https://github.com/victron-venus/inverter-climate/pull/39) \u2014 Require bounded RC fuzzing with documented targets and evidence\n- [#40](https://github.com/victron-venus/inverter-climate/pull/40) \u2014 docs: document governance and OpenSSF assessment evidence\n\n\n\n\n\nAll 27 commits\n\n- [b561eb82c136](https://github.com/victron-venus/inverter-climate/commit/b561eb82c136c521b0f085a534b6526e4f4c2d89) \u2014 Pin dependencies (#13)\n- [4a0e6b7b8522](https://github.com/victron-venus/inverter-climate/commit/4a0e6b7b8522e4d7896b52f0128f29f8cdf3bdb3) \u2014 ci: prepare opt-in runner reserve while keeping GitHub defaults (#15)\n- [b9e1e82b27dc](https://github.com/victron-venus/inverter-climate/commit/b9e1e82b27dc447c9bcc1b50016a51118e68dc91) \u2014 docs: add climate integration project navigation (#16)\n- [b8fe5a861e2d](https://github.com/victron-venus/inverter-climate/commit/b8fe5a861e2d4366d2f0e21cc518deafd859d531) \u2014 Update GitHub Actions and reusable workflows (#17)\n- [7eeeac933fc1](https://github.com/victron-venus/inverter-climate/commit/7eeeac933fc184d51ef1232ff417a2f427786af9) \u2014 \\[StepSecurity\\] Apply security best practices (#18)\n- [3bec392cf4f0](https://github.com/victron-venus/inverter-climate/commit/3bec392cf4f01996194bddb75394dbf16b68b057) \u2014 ci: request CodeRabbit autofix after completed reviews (#19)\n- [c2f7f603a5da](https://github.com/victron-venus/inverter-climate/commit/c2f7f603a5daf2858ccbce0f54cf9a7da8a63b3d) \u2014 Harden dependency installation and release evidence (#20)\n- [d36d09f7291b](https://github.com/victron-venus/inverter-climate/commit/d36d09f7291b2a93f79762f2a78e6fc81cc47134) \u2014 Pin patched uv bootstrap and release build tooling (#21)\n- [08c9f266b586](https://github.com/victron-venus/inverter-climate/commit/08c9f266b5860f463fc9f6bd6a2f3b729723130b) \u2014 fix: keep native persistence matching linear (#22)\n- [b8960269be64](https://github.com/victron-venus/inverter-climate/commit/b8960269be64cc1e8de9f695b2cc01c07e90e56e) \u2014 Simplify release preparation checks and exception tests (#23)\n- [61548e2f2e7c](https://github.com/victron-venus/inverter-climate/commit/61548e2f2e7c353b35a8df8b9c6035f84b700756) \u2014 Isolate expected failures in climate tests (#24)\n- [0391b3e76e61](https://github.com/victron-venus/inverter-climate/commit/0391b3e76e6108fb3021324ad3ef3c8ac81bd64d) \u2014 Clarify validation and keep CodeQL reports on one baseline (#25)\n- [b0010c14bb71](https://github.com/victron-venus/inverter-climate/commit/b0010c14bb718172f9bc9cb38c66d4324da56b9a) \u2014 Clarify controller ownership and preheat decision stages (#26)\n- [d0aa432f5b1c](https://github.com/victron-venus/inverter-climate/commit/d0aa432f5b1c213c0712cb35ebc494297bff724f) \u2014 Clarify installer validation promotion and recovery stages (#27)\n- [31aba8c79611](https://github.com/victron-venus/inverter-climate/commit/31aba8c7961164cf6a014186f72f4ab1225d3b04) \u2014 Refactor climate runtime stages with behavior regressions (#28)\n- [45d9de124614](https://github.com/victron-venus/inverter-climate/commit/45d9de12461416b240b9450319b03c5df8888b1f) \u2014 Update python:3.12-slim Docker digest to 05cda97 (#29)\n- [e4fa376ea1d9](https://github.com/victron-venus/inverter-climate/commit/e4fa376ea1d96acd85097b01ddd0d1bded2847dd) \u2014 Enforce exact HTTPS key sizes without native runtime dependencies (#30)\n- [384c5ff49ca4](https://github.com/victron-venus/inverter-climate/commit/384c5ff49ca40312ee4598fd4c12926eeba7c837) \u2014 Classify Sonar tests and declare supported Python versions (#31)\n- [bc7f6c925128](https://github.com/victron-venus/inverter-climate/commit/bc7f6c92512830a0d6689d0ce8176c94903584ef) \u2014 Update python:3.12-slim Docker digest to a6e34c5 (#32)\n- [a6caa6b1fb91](https://github.com/victron-venus/inverter-climate/commit/a6caa6b1fb91261354143c18bd9f41c2f1b5ff31) \u2014 Update ghcr.io/astral-sh/uv Docker tag to v0.13.0 (#33)\n- [306427287087](https://github.com/victron-venus/inverter-climate/commit/306427287087c294efb2ff3e4d2caecac6e9e875) \u2014 Update Python container to 3.14 with immutable Renovate pins (#34)\n- [e1f01841699c](https://github.com/victron-venus/inverter-climate/commit/e1f01841699c02d39c5c173cad11fbe7afb8e784) \u2014 fix: use authoritative HTTP statuses in release automation (#36)\n- [c91c2d7d5716](https://github.com/victron-venus/inverter-climate/commit/c91c2d7d5716a51570f429556ba0468e8016aaa9) \u2014 Update GitHub Actions and reusable workflows (#35)\n- [3c4aca691ff3](https://github.com/victron-venus/inverter-climate/commit/3c4aca691ff395d51ff321f7ac92d4b6a550ff7b) \u2014 chore(release): prepare the 0.4.1 development cycle (#37)\n- [e2f41516b1fa](https://github.com/victron-venus/inverter-climate/commit/e2f41516b1fa918fc3ead89c4e8eaf7ff0ed56bb) \u2014 Update the container runtime to Python 3.15 with regression coverage (#38)\n- [e85309284227](https://github.com/victron-venus/inverter-climate/commit/e8530928422799fa8bab4df214f54f44e50fb371) \u2014 Require bounded RC fuzzing with documented targets and evidence (#39)\n- [323b17f3ae22](https://github.com/victron-venus/inverter-climate/commit/323b17f3ae227d4e4fd9bab993a1d26426f918ab) \u2014 docs: document governance and OpenSSF assessment evidence (#40)\n\n\n\n\n\n---\n\n## ha-homelab/ha-desloc \u2014 v0.3.3\n\n[Published stable release](https://github.com/ha-homelab/ha-desloc/releases/tag/v0.3.3)\n\n## Changes in 0.3.3\n\n### Changed\n\n- Document the vendor login digest's offline password-guessing risk, the limits\n  of its fixed AES wrapper, and credential/capture handling mitigations. This\n  clarifies the existing protocol; it does not change or fix vendor authentication.\n- Lock Python dependencies and verify downloaded archive SHA-256 hashes in CI and\n  documented installation commands.\n- Update the isolated Home Assistant test runtime from 2026.9.1 to 2026.10.0,\n  which requires PyJWT 2.15.1 instead of vulnerable PyJWT 2.13.0. See\n  [GHSA-ffc3-869f-jxw9](https://github.com/advisories/GHSA-ffc3-869f-jxw9)\n  and the related upstream advisories. This changes the synthetic test environment;\n  it does not install or upgrade Home Assistant on a user's device. Maintain an\n  independently updated, supported Home Assistant installation.\n\n### Added\n\n- Frozen beta/nightly/RC release plans and checksum-bound package receipts.\n- Verification of the existing manual-install ZIP layout and embedded candidate version.\n\n### Upgrade\n\nHACS installation remains unchanged. Test exact candidate builds by installing `ha-desloc.zip` manually with its existing `custom_components/desloc` directory. Back up the existing integration directory and Home Assistant configuration, replace the integration files and restart Home Assistant. Preserve the prior accepted ZIP for rollback. The committed manifest uses the numeric base; install the published release asset to obtain its exact candidate metadata.\n\n### Security\n\nExisting Home Assistant tests, HACS/Hassfest checks and code/dependency checks remain required. Release receipts bind the package identity to the source and workflow. Automated validation does not establish cloud account permissions, physical lock operation or safe installation-specific automation behavior.\n\n## Build provenance\n\nPromoted unchanged from [v0.3.3-rc.3](https://github.com/ha-homelab/ha-desloc/releases/tag/v0.3.3-rc.3).\n\nSource: `75636cc022dea325e11ee8ed1e791c74169746ec`\n\nValidation: https://github.com/ha-homelab/ha-desloc/actions/runs/38511718329\n\nPromotion: https://github.com/ha-homelab/ha-desloc/actions/runs/38512208505\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.3.2\n\nReleased source: [75636cc022de](https://github.com/ha-homelab/ha-desloc/commit/75636cc022dea325e11ee8ed1e791c74169746ec).\nPrevious stable source: [8016949c7bae](https://github.com/ha-homelab/ha-desloc/commit/8016949c7bae93961fce7d4ee8c44cda0b973005).\n\n[Full source history](https://github.com/ha-homelab/ha-desloc/compare/8016949c7bae93961fce7d4ee8c44cda0b973005...75636cc022dea325e11ee8ed1e791c74169746ec). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 23 merged pull requests\n\n- [#18](https://github.com/ha-homelab/ha-desloc/pull/18) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#20](https://github.com/ha-homelab/ha-desloc/pull/20) \u2014 fix(ci): correct StepSecurity action commit pins\n- [#25](https://github.com/ha-homelab/ha-desloc/pull/25) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#28](https://github.com/ha-homelab/ha-desloc/pull/28) \u2014 docs: document security boundaries and OpenSSF evidence\n- [#29](https://github.com/ha-homelab/ha-desloc/pull/29) \u2014 build: lock Python archives and update the vulnerable HA test runtime\n- [#30](https://github.com/ha-homelab/ha-desloc/pull/30) \u2014 Include GitHub Actions workflows in security analysis\n- [#31](https://github.com/ha-homelab/ha-desloc/pull/31) \u2014 Link the private vulnerability reporting form\n- [#32](https://github.com/ha-homelab/ha-desloc/pull/32) \u2014 docs: explain vendor password digest exposure risk\n- [#33](https://github.com/ha-homelab/ha-desloc/pull/33) \u2014 Document the verified Home Assistant HTTPS profile\n- [#19](https://github.com/ha-homelab/ha-desloc/pull/19) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1\n- [#22](https://github.com/ha-homelab/ha-desloc/pull/22) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1\n- [#24](https://github.com/ha-homelab/ha-desloc/pull/24) \u2014 chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0\n- [#26](https://github.com/ha-homelab/ha-desloc/pull/26) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74\n- [#27](https://github.com/ha-homelab/ha-desloc/pull/27) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74\n- [#34](https://github.com/ha-homelab/ha-desloc/pull/34) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#35](https://github.com/ha-homelab/ha-desloc/pull/35) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#41](https://github.com/ha-homelab/ha-desloc/pull/41) \u2014 fix(ci): align CodeQL and migrate workflow updates to Renovate\n- [#42](https://github.com/ha-homelab/ha-desloc/pull/42) \u2014 Prepare the 0.3.3b1 opt-in beta package\n- [#43](https://github.com/ha-homelab/ha-desloc/pull/43) \u2014 chore(deps): update github actions and reusable workflows\n- [#44](https://github.com/ha-homelab/ha-desloc/pull/44) \u2014 Add versioned integration candidates and RC fuzz qualification\n- [#46](https://github.com/ha-homelab/ha-desloc/pull/46) \u2014 Use durable release workflows and verified publication guards\n- [#45](https://github.com/ha-homelab/ha-desloc/pull/45) \u2014 chore(deps): bump aiohttp from 3.13.4 to 3.14.3 in /.github\n- [#47](https://github.com/ha-homelab/ha-desloc/pull/47) \u2014 fix: lock RC fuzz dependencies for Python 3.12\n\n\n\n\n\nAll 23 commits\n\n- [5397f219cc85](https://github.com/ha-homelab/ha-desloc/commit/5397f219cc853e35cf1353f37a85d16a3e4fb152) \u2014 \\[StepSecurity\\] Apply security best practices (#18)\n- [a0fb171952de](https://github.com/ha-homelab/ha-desloc/commit/a0fb171952de5db32853c0fa210514a048c7f1b2) \u2014 fix(ci): correct StepSecurity action commit pins (#20)\n- [a3c2ab653a5e](https://github.com/ha-homelab/ha-desloc/commit/a3c2ab653a5e697e14cbc308f8d78dc7bdecbb8a) \u2014 ci: request CodeRabbit autofix after completed reviews (#25)\n- [605bd2db4029](https://github.com/ha-homelab/ha-desloc/commit/605bd2db4029c3056205fab3ecd3ddde53272fc5) \u2014 docs: document security boundaries and OpenSSF evidence (#28)\n- [e19157867f6a](https://github.com/ha-homelab/ha-desloc/commit/e19157867f6a030fba7a9404e26e74ad552f1207) \u2014 build: lock Python archives and update the vulnerable HA test runtime (#29)\n- [bc4b492d3403](https://github.com/ha-homelab/ha-desloc/commit/bc4b492d3403cbcb11bffe82ae2b693cd67c3f9f) \u2014 Include GitHub Actions workflows in security analysis (#30)\n- [f114b5671bce](https://github.com/ha-homelab/ha-desloc/commit/f114b5671bce6b68035e418c72f25ee12deef61f) \u2014 Link the private vulnerability reporting form (#31)\n- [a20607533e62](https://github.com/ha-homelab/ha-desloc/commit/a20607533e6249b96801cc4b88d1054140bb5328) \u2014 docs: explain vendor password digest exposure risk (#32)\n- [3a1f8162ea81](https://github.com/ha-homelab/ha-desloc/commit/3a1f8162ea81ba01be91ebfadf6c2d275f200c8b) \u2014 Document the verified Home Assistant HTTPS profile (#33)\n- [26bc01ab0f62](https://github.com/ha-homelab/ha-desloc/commit/26bc01ab0f626bf81d96c6064058ba18732b3c74) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#19)\n- [e6d2de61edde](https://github.com/ha-homelab/ha-desloc/commit/e6d2de61eddef8f3db623648d93f12ab4fcd2e77) \u2014 build(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#22)\n- [2e6e8663d39a](https://github.com/ha-homelab/ha-desloc/commit/2e6e8663d39a222f606af0a8f5c696e9867849b1) \u2014 chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 (#24)\n- [28b81296bdca](https://github.com/ha-homelab/ha-desloc/commit/28b81296bdca2a89470646c01519dfbf904c636d) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 (#26)\n- [4e82b163b81b](https://github.com/ha-homelab/ha-desloc/commit/4e82b163b81bc2f9e085a4f8d48ca2f5a2c877f5) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 (#27)\n- [0de607447e9f](https://github.com/ha-homelab/ha-desloc/commit/0de607447e9f6b96934c08aab85a5326ab55b5f5) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#34)\n- [ad5a46265685](https://github.com/ha-homelab/ha-desloc/commit/ad5a462656854f1b6c03a75f9e18da3ca1d29184) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#35)\n- [b58e109973b8](https://github.com/ha-homelab/ha-desloc/commit/b58e109973b8b16978e849966638185711637f5c) \u2014 fix(ci): align CodeQL and migrate workflow updates to Renovate (#41)\n- [20762515be00](https://github.com/ha-homelab/ha-desloc/commit/20762515be00637981ea3983001ee45909e9f4e3) \u2014 Prepare the 0.3.3b1 opt-in beta package (#42)\n- [9c7850506704](https://github.com/ha-homelab/ha-desloc/commit/9c7850506704f2111dfef1367e241345b488675c) \u2014 chore(deps): update github actions and reusable workflows (#43)\n- [a79545019415](https://github.com/ha-homelab/ha-desloc/commit/a79545019415c0a98deb47725327357ccbeae170) \u2014 Add versioned integration candidates and RC fuzz qualification (#44)\n- [edd063d6f417](https://github.com/ha-homelab/ha-desloc/commit/edd063d6f417a044cdc974b597dcbb3e9ad6b229) \u2014 Use durable release workflows and verified publication guards (#46)\n- [4540098a65f1](https://github.com/ha-homelab/ha-desloc/commit/4540098a65f1ffb27be3136af4c6a78416d6d84a) \u2014 chore(deps): bump aiohttp from 3.13.4 to 3.14.3 in /.github (#45)\n- [75636cc022de](https://github.com/ha-homelab/ha-desloc/commit/75636cc022dea325e11ee8ed1e791c74169746ec) \u2014 fix: lock RC fuzz dependencies for Python 3.12 (#47)\n\n\n\n\n\n---\n\n## ha-homelab/ha-desloc-card \u2014 v0.1.3\n\n[Published stable release](https://github.com/ha-homelab/ha-desloc-card/releases/tag/v0.1.3)\n\n## Changes in 0.1.3\n\n- Render unknown lock states as Unknown, including JavaScript prototype-property names.\n- Add bounded, offline RC-only Jazzer.js campaigns for card rendering and command confirmation.\n- Publish HACS-compatible card assets with frozen versions, checksums and source-bound release evidence.\n\n### Upgrade\n\nUse the existing HACS custom repository or replace ha-desloc-card.js manually,\nthen reload the browser. The HACS asset name and card configuration stay the\nsame. This preview adds no migration or automatic lock action. Check the card\non desktop and mobile before considering stable promotion.\n\n### Security\n\nUnknown state strings, including JavaScript prototype-property names, now\nrender as Unknown. Unlock still requires a reported locked state and explicit\nconfirmation. Offline RC fuzzing uses synthetic data and stub service calls;\nit does not verify physical lock state or authorize real device operations.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.3-rc.2](https://github.com/ha-homelab/ha-desloc-card/releases/tag/v0.1.3-rc.2).\n\nSource: `9eaf2fb92832c238c4b05fa1030688b220258f64`\n\nValidation: https://github.com/ha-homelab/ha-desloc-card/actions/runs/38511122704\n\nPromotion: https://github.com/ha-homelab/ha-desloc-card/actions/runs/38511685320\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.2\n\nReleased source: [9eaf2fb92832](https://github.com/ha-homelab/ha-desloc-card/commit/9eaf2fb92832c238c4b05fa1030688b220258f64).\nPrevious stable source: [9e570ef23ca2](https://github.com/ha-homelab/ha-desloc-card/commit/9e570ef23ca29d954bfdac55e192e2d224fe0c5a).\n\n[Full source history](https://github.com/ha-homelab/ha-desloc-card/compare/9e570ef23ca29d954bfdac55e192e2d224fe0c5a...9eaf2fb92832c238c4b05fa1030688b220258f64). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 21 merged pull requests\n\n- [#13](https://github.com/ha-homelab/ha-desloc-card/pull/13) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#15](https://github.com/ha-homelab/ha-desloc-card/pull/15) \u2014 fix(ci): correct StepSecurity action commit pins\n- [#20](https://github.com/ha-homelab/ha-desloc-card/pull/20) \u2014 fix(ci): keep pinned Scorecard reports in GitHub Security\n- [#21](https://github.com/ha-homelab/ha-desloc-card/pull/21) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#22](https://github.com/ha-homelab/ha-desloc-card/pull/22) \u2014 docs: document security boundaries and OpenSSF evidence\n- [#23](https://github.com/ha-homelab/ha-desloc-card/pull/23) \u2014 Include GitHub Actions workflows in security analysis\n- [#16](https://github.com/ha-homelab/ha-desloc-card/pull/16) \u2014 chore(deps): bump actions/setup-node from 6.5.0 to 7.0.0\n- [#17](https://github.com/ha-homelab/ha-desloc-card/pull/17) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to dceed6ce56af841f729297eec10129a61fd44df9\n- [#18](https://github.com/ha-homelab/ha-desloc-card/pull/18) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1\n- [#19](https://github.com/ha-homelab/ha-desloc-card/pull/19) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1\n- [#24](https://github.com/ha-homelab/ha-desloc-card/pull/24) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to 5ec4c925c86558ee4cdd2bd76a4cb5c17c90d23f\n- [#25](https://github.com/ha-homelab/ha-desloc-card/pull/25) \u2014 Group Actions updates and align the review workflow\n- [#26](https://github.com/ha-homelab/ha-desloc-card/pull/26) \u2014 chore(deps): bump the github-actions group with 2 updates\n- [#27](https://github.com/ha-homelab/ha-desloc-card/pull/27) \u2014 fix(ci): migrate workflow updates to shared Renovate\n- [#28](https://github.com/ha-homelab/ha-desloc-card/pull/28) \u2014 fix(ci): validate mixed-case CodeQL repository references\n- [#29](https://github.com/ha-homelab/ha-desloc-card/pull/29) \u2014 chore(deps-dev): bump happy-dom from 20.14.5 to 20.14.6\n- [#30](https://github.com/ha-homelab/ha-desloc-card/pull/30) \u2014 Prepare the 0.1.3-beta.1 opt-in beta package\n- [#31](https://github.com/ha-homelab/ha-desloc-card/pull/31) \u2014 chore(deps): update github actions and reusable workflows\n- [#32](https://github.com/ha-homelab/ha-desloc-card/pull/32) \u2014 Fuzz public RC card rendering and preserve HACS release assets\n- [#33](https://github.com/ha-homelab/ha-desloc-card/pull/33) \u2014 Document supported local packaging commands\n- [#34](https://github.com/ha-homelab/ha-desloc-card/pull/34) \u2014 Document OpenSSF practices and scan Python release tooling\n\n\n\n\n\nAll 21 commits\n\n- [fdfdefd79d35](https://github.com/ha-homelab/ha-desloc-card/commit/fdfdefd79d3536c4ace9a4690be244d9ff07d3f3) \u2014 \\[StepSecurity\\] Apply security best practices (#13)\n- [d0ccf464ef6f](https://github.com/ha-homelab/ha-desloc-card/commit/d0ccf464ef6fda76baaafd2e72217921c393de2c) \u2014 fix(ci): correct StepSecurity action commit pins (#15)\n- [7bb2192dc689](https://github.com/ha-homelab/ha-desloc-card/commit/7bb2192dc689c84cc5dcca46f9b5124141793821) \u2014 fix(ci): keep pinned Scorecard reports in GitHub Security (#20)\n- [03ab48cfabfb](https://github.com/ha-homelab/ha-desloc-card/commit/03ab48cfabfbd7d09f59c67d7acb23971de98089) \u2014 ci: request CodeRabbit autofix after completed reviews (#21)\n- [82052d20a41c](https://github.com/ha-homelab/ha-desloc-card/commit/82052d20a41ce51f7e3a0522a36365e92f28543b) \u2014 docs: document security boundaries and OpenSSF evidence (#22)\n- [f035841ffb17](https://github.com/ha-homelab/ha-desloc-card/commit/f035841ffb175df43e63ec31f14a2a8195732062) \u2014 Include GitHub Actions workflows in security analysis (#23)\n- [845b344206c9](https://github.com/ha-homelab/ha-desloc-card/commit/845b344206c99703184eb98ade72ad6e90ca0223) \u2014 chore(deps): bump actions/setup-node from 6.5.0 to 7.0.0 (#16)\n- [70b691b4e2c0](https://github.com/ha-homelab/ha-desloc-card/commit/70b691b4e2c0f9dfe98ac405389a0b146cdb4c85) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to dceed6ce56af841f729297eec10129a61fd44df9 (#17)\n- [9606292d94ca](https://github.com/ha-homelab/ha-desloc-card/commit/9606292d94ca706052afca9d87363a36cc2ac2e0) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#18)\n- [98ef90be5e67](https://github.com/ha-homelab/ha-desloc-card/commit/98ef90be5e6744eff1bcf1ecd44c02252199027a) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#19)\n- [ad5c8b2ecff4](https://github.com/ha-homelab/ha-desloc-card/commit/ad5c8b2ecff440f85a841e13975949dc5be07384) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to 5ec4c925c86558ee4cdd2bd76a4cb5c17c90d23f (#24)\n- [82490881d63c](https://github.com/ha-homelab/ha-desloc-card/commit/82490881d63c3d35b1d528d9b4039e150d51aeac) \u2014 Group Actions updates and align the review workflow (#25)\n- [d474023fde37](https://github.com/ha-homelab/ha-desloc-card/commit/d474023fde372a3f14957be7c6d0ecc7e015e810) \u2014 chore(deps): bump the github-actions group with 2 updates (#26)\n- [374d09bfc94a](https://github.com/ha-homelab/ha-desloc-card/commit/374d09bfc94aaf8ec01c4c97ca5a0231722c2ef0) \u2014 fix(ci): migrate workflow updates to shared Renovate (#27)\n- [18ba534752fb](https://github.com/ha-homelab/ha-desloc-card/commit/18ba534752fb6cde2a9784761ebc9f616c664acf) \u2014 fix(ci): validate mixed-case CodeQL repository references (#28)\n- [a33af5de8b1f](https://github.com/ha-homelab/ha-desloc-card/commit/a33af5de8b1fc05fa20404b7385f88608e6561ef) \u2014 chore(deps-dev): bump happy-dom from 20.14.5 to 20.14.6 (#29)\n- [bc7e52ea70cf](https://github.com/ha-homelab/ha-desloc-card/commit/bc7e52ea70cf9c392b874af89a1c8025de70205b) \u2014 Prepare the 0.1.3-beta.1 opt-in beta package (#30)\n- [e1c11ae9f695](https://github.com/ha-homelab/ha-desloc-card/commit/e1c11ae9f6950c1212a9a8f45ce484ac69ae06ea) \u2014 chore(deps): update github actions and reusable workflows (#31)\n- [454061b45f98](https://github.com/ha-homelab/ha-desloc-card/commit/454061b45f98b00a9c5535c20f2a92b53bbbefec) \u2014 Fuzz public RC card rendering and preserve HACS release assets (#32)\n- [12318f324fe3](https://github.com/ha-homelab/ha-desloc-card/commit/12318f324fe356047424f6ee98bd2aa0486d7556) \u2014 Document supported local packaging commands (#33)\n- [9eaf2fb92832](https://github.com/ha-homelab/ha-desloc-card/commit/9eaf2fb92832c238c4b05fa1030688b220258f64) \u2014 Document OpenSSF practices and scan Python release tooling (#34)\n\n\n\n\n\n---\n\n## ha-homelab/ha-echo-dot \u2014 v0.1.0\n\n[Published stable release](https://github.com/ha-homelab/ha-echo-dot/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n- Add local synthetic model-metadata and WAV fuzz tests. Invalid model tensor\n  references now return validation errors instead of panicking. Public RCs run\n  bounded isolated campaigns through the shared release tooling.\n- Start the separate 0.1.0 host-tools/documentation preview line with deterministic\n  allowlisted source archives. No firmware, models or private audio is packaged.\n\n- Update the CI lock resolver to uv 0.12.18, which fixes the Windows wheel\n  extraction path traversal in GHSA-2cv4-cqwr-gwf7. The training dependency\n  lock and supported runtime versions remain unchanged.\n\n- Run the existing synthetic Python host regressions and Go race tests in CI.\n  Model training, TensorFlow-specific dependency checks, acoustic acceptance and\n  physical-device conversion remain separate validation steps.\n- Document contributions, private vulnerability reporting, trust boundaries and\n  partial OpenSSF evidence. Export these files through the public manifest.\n- No firmware, model, credential, device setting or license grant is changed.\n\n### Upgrade\n\nThis first 0.1.0 host-tools preview is source-only. Unpack it into a new directory\nand follow the existing host-tool instructions. It does not install firmware,\nreplace a model, alter an Echo or migrate private training data. Review device\nand model compatibility separately before using any tool on hardware.\n\n### Security\n\nMalformed model metadata now returns validation errors instead of panicking.\nRC fuzzing exercises only synthetic metadata and WAV inputs in an isolated\nrunner. The archive contains the public allowlist only; never place credentials,\nrecordings, trained model weights or device inventories in public reports.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.3](https://github.com/ha-homelab/ha-echo-dot/releases/tag/v0.1.0-rc.3).\n\nSource: `e3f30d7ac7e16445e6230eab82974ec446243f39`\n\nValidation: https://github.com/ha-homelab/ha-echo-dot/actions/runs/38510884307\n\nPromotion: https://github.com/ha-homelab/ha-echo-dot/actions/runs/38511488678\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [e3f30d7ac7e1](https://github.com/ha-homelab/ha-echo-dot/commit/e3f30d7ac7e16445e6230eab82974ec446243f39).\n\n[Full source history](https://github.com/ha-homelab/ha-echo-dot/commits/e3f30d7ac7e16445e6230eab82974ec446243f39). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 45 merged pull requests\n\n- [#1](https://github.com/ha-homelab/ha-echo-dot/pull/1) \u2014 Publish Echo Dot conversion and wake-word training workflow\n- [#4](https://github.com/ha-homelab/ha-echo-dot/pull/4) \u2014 chore(ci): enable quiet CodeRabbit reviews\n- [#5](https://github.com/ha-homelab/ha-echo-dot/pull/5) \u2014 test: cover public export path and destination safeguards\n- [#2](https://github.com/ha-homelab/ha-echo-dot/pull/2) \u2014 Fix protobuf security update with compatible TensorFlow\n- [#3](https://github.com/ha-homelab/ha-echo-dot/pull/3) \u2014 Add Kotik training workflow and Echo audio diagnostics\n- [#7](https://github.com/ha-homelab/ha-echo-dot/pull/7) \u2014 docs: distinguish Echo conversion and Alexa skill paths\n- [#6](https://github.com/ha-homelab/ha-echo-dot/pull/6) \u2014 Document EchoLocal controls and add owner voice recording workflow\n- [#8](https://github.com/ha-homelab/ha-echo-dot/pull/8) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#17](https://github.com/ha-homelab/ha-echo-dot/pull/17) \u2014 fix(ci): pin Scorecard container by digest\n- [#18](https://github.com/ha-homelab/ha-echo-dot/pull/18) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#19](https://github.com/ha-homelab/ha-echo-dot/pull/19) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74\n- [#21](https://github.com/ha-homelab/ha-echo-dot/pull/21) \u2014 ci: validate host helpers and document security boundaries\n- [#20](https://github.com/ha-homelab/ha-echo-dot/pull/20) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74\n- [#9](https://github.com/ha-homelab/ha-echo-dot/pull/9) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1\n- [#16](https://github.com/ha-homelab/ha-echo-dot/pull/16) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1\n- [#15](https://github.com/ha-homelab/ha-echo-dot/pull/15) \u2014 chore(deps): bump markupsafe from 3.0.3 to 3.0.4 in /training\n- [#22](https://github.com/ha-homelab/ha-echo-dot/pull/22) \u2014 build: verify Python dependency archives with SHA-256 locks\n- [#14](https://github.com/ha-homelab/ha-echo-dot/pull/14) \u2014 fix: keep wake-word dependencies and synthesis recipe compatible\n- [#24](https://github.com/ha-homelab/ha-echo-dot/pull/24) \u2014 fix: bump filelock from 4.0.9 to 4.0.11 in /training\n- [#23](https://github.com/ha-homelab/ha-echo-dot/pull/23) \u2014 fix: guard reference training dependency compatibility\n- [#25](https://github.com/ha-homelab/ha-echo-dot/pull/25) \u2014 fix: bump ml-dtypes from 0.4.1 to 0.5.4 in /training in the tensorflow-runtime group\n- [#28](https://github.com/ha-homelab/ha-echo-dot/pull/28) \u2014 Include GitHub Actions workflows in security analysis\n- [#29](https://github.com/ha-homelab/ha-echo-dot/pull/29) \u2014 Update uv lock resolver to patched 0.12.18\n- [#26](https://github.com/ha-homelab/ha-echo-dot/pull/26) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f\n- [#27](https://github.com/ha-homelab/ha-echo-dot/pull/27) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f\n- [#33](https://github.com/ha-homelab/ha-echo-dot/pull/33) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#32](https://github.com/ha-homelab/ha-echo-dot/pull/32) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#30](https://github.com/ha-homelab/ha-echo-dot/pull/30) \u2014 fix: bump debian from `3783cc0` to `7c7b2c9` in /host/synology\n- [#31](https://github.com/ha-homelab/ha-echo-dot/pull/31) \u2014 fix: bump filelock from 4.0.11 to 4.0.12 in /training\n- [#34](https://github.com/ha-homelab/ha-echo-dot/pull/34) \u2014 Document dated wakeword sensitivity incidents and acceptance limits\n- [#35](https://github.com/ha-homelab/ha-echo-dot/pull/35) \u2014 Record speech connection recovery and its verification limits\n- [#36](https://github.com/ha-homelab/ha-echo-dot/pull/36) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to ab9c71f0ca24191a65220580635715160c31dd43\n- [#37](https://github.com/ha-homelab/ha-echo-dot/pull/37) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to ab9c71f0ca24191a65220580635715160c31dd43\n- [#38](https://github.com/ha-homelab/ha-echo-dot/pull/38) \u2014 fix: bump actions/upload-artifact from 7.0.1 to 7.0.2\n- [#39](https://github.com/ha-homelab/ha-echo-dot/pull/39) \u2014 fix: bump pycparser from 3.0 to 3.11 in /training\n- [#41](https://github.com/ha-homelab/ha-echo-dot/pull/41) \u2014 fix: bump huggingface-hub from 2.1.1 to 2.2.0 in /training\n- [#42](https://github.com/ha-homelab/ha-echo-dot/pull/42) \u2014 fix: bump absl-py from 2.5.0 to 2.5.1 in /training\n- [#43](https://github.com/ha-homelab/ha-echo-dot/pull/43) \u2014 fix: bump hf-xet from 1.6.0 to 1.7.0 in /training\n- [#44](https://github.com/ha-homelab/ha-echo-dot/pull/44) \u2014 Keep CodeQL actions and recorded runtime updates coordinated\n- [#46](https://github.com/ha-homelab/ha-echo-dot/pull/46) \u2014 build(deps): bump filelock from 4.0.12 to 4.1.0 in /training\n- [#47](https://github.com/ha-homelab/ha-echo-dot/pull/47) \u2014 build(deps): bump the github-actions group with 4 updates\n- [#48](https://github.com/ha-homelab/ha-echo-dot/pull/48) \u2014 Add source-only host-tool releases with RC fuzz qualification\n- [#49](https://github.com/ha-homelab/ha-echo-dot/pull/49) \u2014 Fix reusable fuzz workflow reference after squash merge\n- [#50](https://github.com/ha-homelab/ha-echo-dot/pull/50) \u2014 Fix host-tools candidate publication and release notes\n- [#51](https://github.com/ha-homelab/ha-echo-dot/pull/51) \u2014 Document supported local packaging commands\n\n\n\n\n\nAll 46 commits\n\n- [7b4a6e6fbcb4](https://github.com/ha-homelab/ha-echo-dot/commit/7b4a6e6fbcb41be3ec8391bf0ba3d1bd2e330552) \u2014 Initial commit\n- [dbe0ff5ebea4](https://github.com/ha-homelab/ha-echo-dot/commit/dbe0ff5ebea4bcf968435db8ac91479fc5aef04d) \u2014 Publish Echo Dot conversion and wake-word training workflow (#1)\n- [6382f112dde4](https://github.com/ha-homelab/ha-echo-dot/commit/6382f112dde440fda44e7eda358eb654db3e92d4) \u2014 chore(ci): enable quiet CodeRabbit reviews (#4)\n- [521db63e3a8b](https://github.com/ha-homelab/ha-echo-dot/commit/521db63e3a8bc1967fb960eaeba451fd86520b0e) \u2014 test: cover public export path and destination safeguards\n- [cb9aee3ad176](https://github.com/ha-homelab/ha-echo-dot/commit/cb9aee3ad176e24273e62a593cd175f6a3e6de3b) \u2014 Fix protobuf security update with compatible TensorFlow (#2)\n- [e16512893d87](https://github.com/ha-homelab/ha-echo-dot/commit/e16512893d877d9683b207fe5eea594dd33e6fe7) \u2014 Add Kotik training workflow and Echo audio diagnostics (#3)\n- [10833092cefb](https://github.com/ha-homelab/ha-echo-dot/commit/10833092cefb1f0daff901b96a939d1cc681f9f2) \u2014 docs: distinguish Echo conversion and Alexa skill paths (#7)\n- [893c940663d7](https://github.com/ha-homelab/ha-echo-dot/commit/893c940663d729d95ed7c498462622d3a8d8c97d) \u2014 Document EchoLocal controls and add owner voice recording workflow (#6)\n- [ac339a204cf4](https://github.com/ha-homelab/ha-echo-dot/commit/ac339a204cf435136d7ff0da3bf779697765d2f9) \u2014 \\[StepSecurity\\] Apply security best practices (#8)\n- [8adcd4a86b51](https://github.com/ha-homelab/ha-echo-dot/commit/8adcd4a86b518a2c66701a84e76e68c63b4dddc5) \u2014 fix(ci): pin Scorecard container by digest (#17)\n- [0434723ec7b7](https://github.com/ha-homelab/ha-echo-dot/commit/0434723ec7b73798c8f3cd6cd15edd68c1acaa70) \u2014 ci: request CodeRabbit autofix after completed reviews (#18)\n- [3c0f3b8de370](https://github.com/ha-homelab/ha-echo-dot/commit/3c0f3b8de37040bb01013aa63301dc974538977e) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 (#19)\n- [9633691191a5](https://github.com/ha-homelab/ha-echo-dot/commit/9633691191a59ec770dd5d79717a4eae39577dbb) \u2014 ci: validate host helpers and document security boundaries (#21)\n- [55132da6b7f3](https://github.com/ha-homelab/ha-echo-dot/commit/55132da6b7f3b1a497d6423ce994195e4ca6c378) \u2014 chore(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 (#20)\n- [4317e0761855](https://github.com/ha-homelab/ha-echo-dot/commit/4317e076185501626bb0706779844bac2fbe76d5) \u2014 chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#9)\n- [51c9e168eb8b](https://github.com/ha-homelab/ha-echo-dot/commit/51c9e168eb8b7907ba13b0b863ba8c27f56dbfb4) \u2014 chore(deps): bump actions/checkout from 4.4.0 to 7.0.1 (#16)\n- [fc2e1e74022e](https://github.com/ha-homelab/ha-echo-dot/commit/fc2e1e74022e42dd6c6c43dcbdabbb8cbe2a10fb) \u2014 chore(deps): bump markupsafe from 3.0.3 to 3.0.4 in /training (#15)\n- [c58037b4fe29](https://github.com/ha-homelab/ha-echo-dot/commit/c58037b4fe29b10766ef4f496e5e6a4be7e39585) \u2014 build: verify Python dependency archives with SHA-256 locks (#22)\n- [25f0ccc6b8f5](https://github.com/ha-homelab/ha-echo-dot/commit/25f0ccc6b8f50a94dd4a50123495058fe0b7bcf6) \u2014 fix: keep wake-word dependencies and synthesis recipe compatible (#14)\n- [8bcd32f2eb52](https://github.com/ha-homelab/ha-echo-dot/commit/8bcd32f2eb52353b6cf771d93e76ed4554ac1dae) \u2014 fix: bump filelock from 4.0.9 to 4.0.11 in /training (#24)\n- [51ef44463829](https://github.com/ha-homelab/ha-echo-dot/commit/51ef44463829a0785368bdf4b9e8ca7a7f439a75) \u2014 fix: guard reference training dependency compatibility (#23)\n- [fbf42243aa44](https://github.com/ha-homelab/ha-echo-dot/commit/fbf42243aa443dd142df0b71702f844efd780c68) \u2014 fix: bump ml-dtypes from 0.4.1 to 0.5.4 in /training in the tensorflow-runtime group (#25)\n- [7cef823b7d90](https://github.com/ha-homelab/ha-echo-dot/commit/7cef823b7d90bf121491821580ebe251c81a46d1) \u2014 Include GitHub Actions workflows in security analysis (#28)\n- [ace05ce721d8](https://github.com/ha-homelab/ha-echo-dot/commit/ace05ce721d825346569a981fbce691720e3ac4d) \u2014 Update uv lock resolver to patched 0.12.18 (#29)\n- [1b32d35d1a24](https://github.com/ha-homelab/ha-echo-dot/commit/1b32d35d1a2488b02d841d1cc271bf766108359f) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f (#26)\n- [9b4b5c959aba](https://github.com/ha-homelab/ha-echo-dot/commit/9b4b5c959aba0c16cc1557312d6e00696d0274e5) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f (#27)\n- [66e0da300cc4](https://github.com/ha-homelab/ha-echo-dot/commit/66e0da300cc4f0fbc3e199b568b17695402683de) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#33)\n- [45927e7cc43a](https://github.com/ha-homelab/ha-echo-dot/commit/45927e7cc43af259a86cd5cb3134e58b5eb71d30) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#32)\n- [f73bb0ea039f](https://github.com/ha-homelab/ha-echo-dot/commit/f73bb0ea039fdb83aa685bfe266566c0f0ae644d) \u2014 fix: bump debian from `3783cc0` to `7c7b2c9` in /host/synology (#30)\n- [c173ad153fb9](https://github.com/ha-homelab/ha-echo-dot/commit/c173ad153fb9bf41f682ac6acd6547a4441fbc74) \u2014 fix: bump filelock from 4.0.11 to 4.0.12 in /training (#31)\n- [24869097905d](https://github.com/ha-homelab/ha-echo-dot/commit/24869097905d65d2d334c439a48d94067a126f51) \u2014 Document dated wakeword sensitivity incidents and acceptance limits (#34)\n- [8ea0273d75c0](https://github.com/ha-homelab/ha-echo-dot/commit/8ea0273d75c0efb1a300af98b4ce638dea968003) \u2014 Record speech connection recovery and its verification limits (#35)\n- [dc8bd47fa6da](https://github.com/ha-homelab/ha-echo-dot/commit/dc8bd47fa6da172250300b786b1946b88166a174) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to ab9c71f0ca24191a65220580635715160c31dd43 (#36)\n- [d56bf638d88d](https://github.com/ha-homelab/ha-echo-dot/commit/d56bf638d88dfe982e5880308c1fb1b15831f194) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to ab9c71f0ca24191a65220580635715160c31dd43 (#37)\n- [1ffd01444867](https://github.com/ha-homelab/ha-echo-dot/commit/1ffd01444867bf4728d569a8288626fddc2780f3) \u2014 fix: bump actions/upload-artifact from 7.0.1 to 7.0.2 (#38)\n- [e343efc6bbaa](https://github.com/ha-homelab/ha-echo-dot/commit/e343efc6bbaa805ccb4f92feaab737f0b7d50cd3) \u2014 fix: bump pycparser from 3.0 to 3.11 in /training (#39)\n- [04dbd649e3cc](https://github.com/ha-homelab/ha-echo-dot/commit/04dbd649e3ccb0fd6dc94e5e7b54945fda64a2a2) \u2014 fix: bump huggingface-hub from 2.1.1 to 2.2.0 in /training (#41)\n- [48e023b4c62c](https://github.com/ha-homelab/ha-echo-dot/commit/48e023b4c62c1ebc1fc16e21ea7b77374fccf87b) \u2014 fix: bump absl-py from 2.5.0 to 2.5.1 in /training (#42)\n- [7b1f6f3dcb90](https://github.com/ha-homelab/ha-echo-dot/commit/7b1f6f3dcb900ef6f0044730074e0ea6627a78ab) \u2014 fix: bump hf-xet from 1.6.0 to 1.7.0 in /training (#43)\n- [b1540d61f4d5](https://github.com/ha-homelab/ha-echo-dot/commit/b1540d61f4d582fea97fc8c938bf7e8e0bc4e912) \u2014 Keep CodeQL actions and recorded runtime updates coordinated (#44)\n- [cccfbdfb09f2](https://github.com/ha-homelab/ha-echo-dot/commit/cccfbdfb09f2855f3786245c6f5ed3c10f9be646) \u2014 build(deps): bump filelock from 4.0.12 to 4.1.0 in /training (#46)\n- [77906e13b792](https://github.com/ha-homelab/ha-echo-dot/commit/77906e13b792ac5eff328bd54520ee32aec119e0) \u2014 build(deps): bump the github-actions group with 4 updates (#47)\n- [23ff83ca1e30](https://github.com/ha-homelab/ha-echo-dot/commit/23ff83ca1e3017c7d871a790694978217991dfda) \u2014 Add source-only host-tool releases with RC fuzz qualification (#48)\n- [8155a08f6ede](https://github.com/ha-homelab/ha-echo-dot/commit/8155a08f6ede1f7ffccbb5271b06eb0aac220e47) \u2014 Fix reusable fuzz workflow reference after squash merge (#49)\n- [fb8d80cf0f8c](https://github.com/ha-homelab/ha-echo-dot/commit/fb8d80cf0f8c8c72b19e7903c9ebeb6198d6706f) \u2014 Fix host-tools candidate publication and release notes (#50)\n- [e3f30d7ac7e1](https://github.com/ha-homelab/ha-echo-dot/commit/e3f30d7ac7e16445e6230eab82974ec446243f39) \u2014 Document supported local packaging commands (#51)\n\n\n\n\n\n---\n\n## ha-homelab/ha-echo-show-5 \u2014 v0.1.0\n\n[Published stable release](https://github.com/ha-homelab/ha-echo-show-5/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n### Added\n\n- Introduce versioned integration-source beta/RC archives with an explicit file\n  inventory, isolated archive checks, frozen version plans and Linux intercom\n  fuzz evidence. Component and external artifact versions remain independent.\n\n### Upgrade\n\nextract the source suite separately, preserve private configuration,\n  and follow each integration\u2019s installation steps. This does not flash devices,\n  install APKs, update Home Assistant or deploy containers.\n\n### Security\n\npublication binds checked bytes and source identity; synthetic\n  validation does not establish physical audio or installation acceptance.\n\n- Lock Python dependencies and verify downloaded archive SHA-256 hashes in CI and\n  documented installation commands.\n- Update the isolated Home Assistant test runtime from 2026.9.1 to 2026.10.0,\n  which requires PyJWT 2.15.1 instead of vulnerable PyJWT 2.13.0. See\n  [GHSA-ffc3-869f-jxw9](https://github.com/advisories/GHSA-ffc3-869f-jxw9)\n  and the related upstream advisories. This changes the synthetic test environment;\n  it does not install or upgrade Home Assistant on a user's device. Maintain an\n  independently updated, supported Home Assistant installation.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.2](https://github.com/ha-homelab/ha-echo-show-5/releases/tag/v0.1.0-rc.2).\n\nSource: `1cdc2e48845dd33551848a084a8a45d899ecd3cb`\n\nValidation: https://github.com/ha-homelab/ha-echo-show-5/actions/runs/38510888705\n\nPromotion: https://github.com/ha-homelab/ha-echo-show-5/actions/runs/38511411217\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [1cdc2e48845d](https://github.com/ha-homelab/ha-echo-show-5/commit/1cdc2e48845dd33551848a084a8a45d899ecd3cb).\n\n[Full source history](https://github.com/ha-homelab/ha-echo-show-5/commits/1cdc2e48845dd33551848a084a8a45d899ecd3cb). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 44 merged pull requests\n\n- [#1](https://github.com/ha-homelab/ha-echo-show-5/pull/1) \u2014 Publish guarded Echo Show 5 conversion tools and runbook\n- [#2](https://github.com/ha-homelab/ha-echo-show-5/pull/2) \u2014 Verify System write access and record ROM installation\n- [#3](https://github.com/ha-homelab/ha-echo-show-5/pull/3) \u2014 Confirm Android boot and Companion installation\n- [#4](https://github.com/ha-homelab/ha-echo-show-5/pull/4) \u2014 Record authenticated HA dashboard and Assist setup\n- [#5](https://github.com/ha-homelab/ha-echo-show-5/pull/5) \u2014 Add pinned VACA artifacts and private wake-word runbook\n- [#6](https://github.com/ha-homelab/ha-echo-show-5/pull/6) \u2014 Add protected camera pilot and HA integration guide\n- [#7](https://github.com/ha-homelab/ha-echo-show-5/pull/7) \u2014 Document camera fitting and independent screen wake\n- [#8](https://github.com/ha-homelab/ha-echo-show-5/pull/8) \u2014 chore(ci): enable quiet CodeRabbit reviews\n- [#9](https://github.com/ha-homelab/ha-echo-show-5/pull/9) \u2014 Add HA controls and guarded Show intercom pilot\n- [#10](https://github.com/ha-homelab/ha-echo-show-5/pull/10) \u2014 Add clock and motion cameras, Jitsi calling and FCC voice\n- [#12](https://github.com/ha-homelab/ha-echo-show-5/pull/12) \u2014 docs: improve Echo project and deployment guidance\n- [#11](https://github.com/ha-homelab/ha-echo-show-5/pull/11) \u2014 Add full-screen Show controls, OTT remote and FCC voice integration\n- [#13](https://github.com/ha-homelab/ha-echo-show-5/pull/13) \u2014 docs: preserve the observed FCC voice promotion\n- [#14](https://github.com/ha-homelab/ha-echo-show-5/pull/14) \u2014 \\[StepSecurity\\] Apply security best practices\n- [#21](https://github.com/ha-homelab/ha-echo-show-5/pull/21) \u2014 fix(ci): pin Scorecard container by digest\n- [#26](https://github.com/ha-homelab/ha-echo-show-5/pull/26) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#27](https://github.com/ha-homelab/ha-echo-show-5/pull/27) \u2014 docs: document security boundaries and OpenSSF evidence\n- [#15](https://github.com/ha-homelab/ha-echo-show-5/pull/15) \u2014 Bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to dceed6ce56af841f729297eec10129a61fd44df9\n- [#22](https://github.com/ha-homelab/ha-echo-show-5/pull/22) \u2014 Bump actions/setup-python from 5.6.0 to 7.0.0\n- [#23](https://github.com/ha-homelab/ha-echo-show-5/pull/23) \u2014 Bump actions/setup-node from 4.4.0 to 7.0.0\n- [#24](https://github.com/ha-homelab/ha-echo-show-5/pull/24) \u2014 Bump actions/upload-artifact from 4.6.2 to 7.0.1\n- [#25](https://github.com/ha-homelab/ha-echo-show-5/pull/25) \u2014 Bump actions/checkout from 4.4.0 to 7.0.1\n- [#17](https://github.com/ha-homelab/ha-echo-show-5/pull/17) \u2014 Bump nvidia-riva-client from 2.26.0 to 2.27.0 in /integrations/fcc-voice-backup\n- [#20](https://github.com/ha-homelab/ha-echo-show-5/pull/20) \u2014 chore(deps): bump grpcio from 1.83.0 to 1.84.0 in /integrations/fcc-voice-backup\n- [#28](https://github.com/ha-homelab/ha-echo-show-5/pull/28) \u2014 build: lock Python archives and update the vulnerable HA test runtime\n- [#16](https://github.com/ha-homelab/ha-echo-show-5/pull/16) \u2014 fix: update gRPC tools within the supported Riva dependency set\n- [#29](https://github.com/ha-homelab/ha-echo-show-5/pull/29) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from dceed6ce56af841f729297eec10129a61fd44df9 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f\n- [#30](https://github.com/ha-homelab/ha-echo-show-5/pull/30) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f\n- [#31](https://github.com/ha-homelab/ha-echo-show-5/pull/31) \u2014 Include GitHub Actions workflows in security analysis\n- [#35](https://github.com/ha-homelab/ha-echo-show-5/pull/35) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#36](https://github.com/ha-homelab/ha-echo-show-5/pull/36) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9\n- [#32](https://github.com/ha-homelab/ha-echo-show-5/pull/32) \u2014 fix: bump debian from `3783cc0` to `7c7b2c9` in /host/synology\n- [#34](https://github.com/ha-homelab/ha-echo-show-5/pull/34) \u2014 Validate Python 3.14 voice images and preserve complete hashed dependencies\n- [#37](https://github.com/ha-homelab/ha-echo-show-5/pull/37) \u2014 Recover cloud speech after stale gRPC sessions\n- [#38](https://github.com/ha-homelab/ha-echo-show-5/pull/38) \u2014 Document Show display recovery and test guarded VACA timeout patch\n- [#39](https://github.com/ha-homelab/ha-echo-show-5/pull/39) \u2014 build(deps): bump step-security/harden-runner from 2.22.0 to 2.22.1\n- [#41](https://github.com/ha-homelab/ha-echo-show-5/pull/41) \u2014 Keep CodeQL updates compatible and refresh workflow dependencies\n- [#44](https://github.com/ha-homelab/ha-echo-show-5/pull/44) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.38.2 to 4.38.3 in the codeql-actions group\n- [#45](https://github.com/ha-homelab/ha-echo-show-5/pull/45) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to 57b2dabd92f2e2a66b8b6b6879491d5cdb32fc00\n- [#46](https://github.com/ha-homelab/ha-echo-show-5/pull/46) \u2014 build(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2\n- [#47](https://github.com/ha-homelab/ha-echo-show-5/pull/47) \u2014 Add verified integration-source beta and RC releases\n- [#48](https://github.com/ha-homelab/ha-echo-show-5/pull/48) \u2014 Use dependency comparison refs only on review events\n- [#49](https://github.com/ha-homelab/ha-echo-show-5/pull/49) \u2014 Validate project release notes before candidate publication\n- [#50](https://github.com/ha-homelab/ha-echo-show-5/pull/50) \u2014 docs: describe completed RC fuzz qualification\n\n\n\n\n\nAll 45 commits\n\n- [fc021205765b](https://github.com/ha-homelab/ha-echo-show-5/commit/fc021205765b52b6f2b5c15ceb08704553f95cc7) \u2014 Initial commit\n- [287345735036](https://github.com/ha-homelab/ha-echo-show-5/commit/287345735036394ef6e9d16e93c9be29a8a527f3) \u2014 Publish guarded Echo Show 5 conversion tools and runbook (#1)\n- [7f4cd011563f](https://github.com/ha-homelab/ha-echo-show-5/commit/7f4cd011563fc86e471fc3133cc58b2873982648) \u2014 Verify System write access and record ROM installation (#2)\n- [9f5d707cda3d](https://github.com/ha-homelab/ha-echo-show-5/commit/9f5d707cda3d47cc6d07caed673a32fe108c3cb9) \u2014 Confirm Android boot and Companion installation (#3)\n- [92b7c54ec5b9](https://github.com/ha-homelab/ha-echo-show-5/commit/92b7c54ec5b9894520a608e0618ec2587aba2993) \u2014 Record authenticated HA dashboard and Assist setup (#4)\n- [4e823187b5a7](https://github.com/ha-homelab/ha-echo-show-5/commit/4e823187b5a7f7a370d9b5bc85b99d233e1c388f) \u2014 Add pinned VACA artifacts and private wake-word runbook (#5)\n- [ebe5f450e4fa](https://github.com/ha-homelab/ha-echo-show-5/commit/ebe5f450e4fa2b83630d94013da2fdbba8a96348) \u2014 Add protected camera pilot and HA integration guide (#6)\n- [5c01b54faa3c](https://github.com/ha-homelab/ha-echo-show-5/commit/5c01b54faa3ca3f53192fba514fb0277fb72f4cf) \u2014 Document camera fitting and independent screen wake (#7)\n- [1551020539bc](https://github.com/ha-homelab/ha-echo-show-5/commit/1551020539bca1f39ff6b9f0e01aad3f0da68bfd) \u2014 chore(ci): enable quiet CodeRabbit reviews (#8)\n- [ab129f93697a](https://github.com/ha-homelab/ha-echo-show-5/commit/ab129f93697abd84c457d0aceaafa9d522263680) \u2014 Add HA controls and guarded Show intercom pilot (#9)\n- [efde06b961cb](https://github.com/ha-homelab/ha-echo-show-5/commit/efde06b961cb9232a51351d76b3b50c74bc559d6) \u2014 Add clock and motion cameras, Jitsi calling and FCC voice (#10)\n- [1d11312b868c](https://github.com/ha-homelab/ha-echo-show-5/commit/1d11312b868c856971d81102903dcd6ad3f64947) \u2014 docs: improve Echo project and deployment guidance (#12)\n- [71987dc1cf91](https://github.com/ha-homelab/ha-echo-show-5/commit/71987dc1cf918f8f10b7a224e2002117e6c2c6ad) \u2014 Add full-screen Show controls, OTT remote and FCC voice integration (#11)\n- [f23ce23ec283](https://github.com/ha-homelab/ha-echo-show-5/commit/f23ce23ec283a06834cd713fc1cea1c7a8080ecd) \u2014 docs: preserve the observed FCC voice promotion (#13)\n- [bff7c7fc45df](https://github.com/ha-homelab/ha-echo-show-5/commit/bff7c7fc45dfeddbcd5646e1c0b84c9d7bcd7038) \u2014 \\[StepSecurity\\] Apply security best practices (#14)\n- [5fc46ef2c365](https://github.com/ha-homelab/ha-echo-show-5/commit/5fc46ef2c365aa77c8ee7af2c21144709a74a747) \u2014 fix(ci): pin Scorecard container by digest (#21)\n- [eaa6bd95ab0c](https://github.com/ha-homelab/ha-echo-show-5/commit/eaa6bd95ab0ca93c5b834b7533eee4693acfa6fa) \u2014 ci: request CodeRabbit autofix after completed reviews (#26)\n- [5d37be83cd75](https://github.com/ha-homelab/ha-echo-show-5/commit/5d37be83cd75a8d3ca094441703cb46d1bd3bc08) \u2014 docs: document security boundaries and OpenSSF evidence (#27)\n- [778817dfabff](https://github.com/ha-homelab/ha-echo-show-5/commit/778817dfabffd0d0941af7c1a3bcfd8142158951) \u2014 Bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b81ed0aec645591f0c82a778eb8e3115db86f9ed to dceed6ce56af841f729297eec10129a61fd44df9 (#15)\n- [4544472ad203](https://github.com/ha-homelab/ha-echo-show-5/commit/4544472ad2036ff55b3b6801926b771cc7e27de3) \u2014 Bump actions/setup-python from 5.6.0 to 7.0.0 (#22)\n- [dd12856188d7](https://github.com/ha-homelab/ha-echo-show-5/commit/dd12856188d764788cb1e7840e5b1410442723ff) \u2014 Bump actions/setup-node from 4.4.0 to 7.0.0 (#23)\n- [da5e8cb03bd0](https://github.com/ha-homelab/ha-echo-show-5/commit/da5e8cb03bd0d956644ca5222b458908db832406) \u2014 Bump actions/upload-artifact from 4.6.2 to 7.0.1 (#24)\n- [30fd05ca4219](https://github.com/ha-homelab/ha-echo-show-5/commit/30fd05ca4219450083751adb1307d7a1fb1fbd85) \u2014 Bump actions/checkout from 4.4.0 to 7.0.1 (#25)\n- [3a98d46fbff7](https://github.com/ha-homelab/ha-echo-show-5/commit/3a98d46fbff77c6e715ff1c68ec0ee04242f4e8d) \u2014 Bump nvidia-riva-client from 2.26.0 to 2.27.0 in /integrations/fcc-voice-backup (#17)\n- [b46285cfe55b](https://github.com/ha-homelab/ha-echo-show-5/commit/b46285cfe55b5673d54ce7c1da6c840f840998ab) \u2014 chore(deps): bump grpcio from 1.83.0 to 1.84.0 in /integrations/fcc-voice-backup (#20)\n- [a427689b5ee6](https://github.com/ha-homelab/ha-echo-show-5/commit/a427689b5ee6dd37864d274eea6e55a2499d3118) \u2014 build: lock Python archives and update the vulnerable HA test runtime (#28)\n- [b96fbe77fb52](https://github.com/ha-homelab/ha-echo-show-5/commit/b96fbe77fb52bc5b4bd69f29e7d61ead4b48c4a9) \u2014 fix: update gRPC tools within the supported Riva dependency set (#16)\n- [3530ab77b04c](https://github.com/ha-homelab/ha-echo-show-5/commit/3530ab77b04c176af6028b93628f386b459f012e) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from dceed6ce56af841f729297eec10129a61fd44df9 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f (#29)\n- [a1a7875dd82f](https://github.com/ha-homelab/ha-echo-show-5/commit/a1a7875dd82fbd47fa565988e3f491f85d99a6e1) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f (#30)\n- [6560b72f0025](https://github.com/ha-homelab/ha-echo-show-5/commit/6560b72f00250fe847525dba9df8b31e30211d0d) \u2014 Include GitHub Actions workflows in security analysis (#31)\n- [dcb07b30bf26](https://github.com/ha-homelab/ha-echo-show-5/commit/dcb07b30bf26b6320f2d00188ea8788223b607c8) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#35)\n- [3fd9cc5b4223](https://github.com/ha-homelab/ha-echo-show-5/commit/3fd9cc5b42235c0081a15436687f3c4ef2f6c7b9) \u2014 fix: bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from 64778cbbbe5bb9ac4444a91e1140bd41c5fe4a7f to b93b2e5dd29237f254e5273acf91272abbcd33d9 (#36)\n- [a83da9ec81f5](https://github.com/ha-homelab/ha-echo-show-5/commit/a83da9ec81f53ce7ae913ab6f72c28923f585ce0) \u2014 fix: bump debian from `3783cc0` to `7c7b2c9` in /host/synology (#32)\n- [be9082514df5](https://github.com/ha-homelab/ha-echo-show-5/commit/be9082514df554faadaf71f3ca45cb023c068744) \u2014 Validate Python 3.14 voice images and preserve complete hashed dependencies (#34)\n- [6f13918e15a7](https://github.com/ha-homelab/ha-echo-show-5/commit/6f13918e15a704589ff4e2e7fc99a9b72d9177bb) \u2014 Recover cloud speech after stale gRPC sessions (#37)\n- [114331a9ab17](https://github.com/ha-homelab/ha-echo-show-5/commit/114331a9ab17d484f8b738846ed8190eb69ec4f1) \u2014 Document Show display recovery and test guarded VACA timeout patch (#38)\n- [6ffb3d1e1717](https://github.com/ha-homelab/ha-echo-show-5/commit/6ffb3d1e17175bf7fd08a8c5e2996e2d7c0348ff) \u2014 build(deps): bump step-security/harden-runner from 2.22.0 to 2.22.1 (#39)\n- [b534f0c6f2e7](https://github.com/ha-homelab/ha-echo-show-5/commit/b534f0c6f2e7d45993553c115ae9dc5a5ebea362) \u2014 Keep CodeQL updates compatible and refresh workflow dependencies (#41)\n- [1aca13255531](https://github.com/ha-homelab/ha-echo-show-5/commit/1aca13255531896242cfe6cd50e029a3ec95b5b8) \u2014 build(deps): bump github/codeql-action/upload-sarif from 4.38.2 to 4.38.3 in the codeql-actions group (#44)\n- [250464c68871](https://github.com/ha-homelab/ha-echo-show-5/commit/250464c68871ffb0eb78f89c2f56015cb8735d49) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-review-reusable.yml from b93b2e5dd29237f254e5273acf91272abbcd33d9 to 57b2dabd92f2e2a66b8b6b6879491d5cdb32fc00 (#45)\n- [5543252661d7](https://github.com/ha-homelab/ha-echo-show-5/commit/5543252661d721a209c9991a9568ab4e72375701) \u2014 build(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 (#46)\n- [6944c9e8c352](https://github.com/ha-homelab/ha-echo-show-5/commit/6944c9e8c3522a8080545b3e96ff9726dec43111) \u2014 Add verified integration-source beta and RC releases (#47)\n- [5e9795069e51](https://github.com/ha-homelab/ha-echo-show-5/commit/5e9795069e518ad44ddfbfc6b8afbdcc24fb482c) \u2014 Use dependency comparison refs only on review events (#48)\n- [dee93507f5ef](https://github.com/ha-homelab/ha-echo-show-5/commit/dee93507f5efebebcf5f3d6dc765afe5ecbe7121) \u2014 Validate project release notes before candidate publication (#49)\n- [1cdc2e48845d](https://github.com/ha-homelab/ha-echo-show-5/commit/1cdc2e48845dd33551848a084a8a45d899ecd3cb) \u2014 docs: describe completed RC fuzz qualification (#50)\n\n\n\n\n\n---\n\n## ha-homelab/slzb-06-recovery \u2014 v0.1.1\n\n[Published stable release](https://github.com/ha-homelab/slzb-06-recovery/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n### Added\n\n- Versioned source distributions with explicit file inventory and isolated archive acceptance.\n- RC-only fuzzing of synthetic backup selection/comparison and hardware identity validators.\n\n### Fixed\n\n- Malformed legacy status field types now return validation errors.\n- Deep or excessive backup containers stop within a bounded traversal budget.\n\n### Upgrade\n\nExtract the host-tools source archive into a new directory and install only the\nlocked dependency set required by the selected tool. Preserve all private\nbackups separately. Existing device-specific recovery procedures and explicit\nexecution flags still apply; this release performs no automatic device changes.\n\n### Security\n\nFuzzing and package acceptance use only synthetic data. No firmware, private\nbackups, network keys or operator configuration are distributed. The new input\nguards fail before any device operation; hardware recovery remains manual.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.2](https://github.com/ha-homelab/slzb-06-recovery/releases/tag/v0.1.1-rc.2).\n\nSource: `47adb52701751cfdd45a0bc9ae8a251f0c322cc5`\n\nValidation: https://github.com/ha-homelab/slzb-06-recovery/actions/runs/38494745518\n\nPromotion: https://github.com/ha-homelab/slzb-06-recovery/actions/runs/38510893091\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [47adb5270175](https://github.com/ha-homelab/slzb-06-recovery/commit/47adb52701751cfdd45a0bc9ae8a251f0c322cc5).\nPrevious stable source: [da332c5b56f7](https://github.com/ha-homelab/slzb-06-recovery/commit/da332c5b56f7932a8f4f1e67c609765e60eed5c6).\n\n[Full source history](https://github.com/ha-homelab/slzb-06-recovery/compare/da332c5b56f7932a8f4f1e67c609765e60eed5c6...47adb52701751cfdd45a0bc9ae8a251f0c322cc5). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 10 merged pull requests\n\n- [#21](https://github.com/ha-homelab/slzb-06-recovery/pull/21) \u2014 Include GitHub Actions workflows in security analysis\n- [#22](https://github.com/ha-homelab/slzb-06-recovery/pull/22) \u2014 Document the verified HTTPS runtime for firmware downloads\n- [#23](https://github.com/ha-homelab/slzb-06-recovery/pull/23) \u2014 Document the verified HTTPS/WSS profile for host helpers\n- [#19](https://github.com/ha-homelab/slzb-06-recovery/pull/19) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 in the github-actions group\n- [#24](https://github.com/ha-homelab/slzb-06-recovery/pull/24) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9 in the github-actions group\n- [#25](https://github.com/ha-homelab/slzb-06-recovery/pull/25) \u2014 docs: add illustrated Zigbee firmware and recovery field guide\n- [#26](https://github.com/ha-homelab/slzb-06-recovery/pull/26) \u2014 build(deps): bump the github-actions group with 7 updates\n- [#27](https://github.com/ha-homelab/slzb-06-recovery/pull/27) \u2014 Add RC-only fuzzing and verified recovery-tool source releases\n- [#28](https://github.com/ha-homelab/slzb-06-recovery/pull/28) \u2014 Clarify fuzz execution-count evidence\n- [#29](https://github.com/ha-homelab/slzb-06-recovery/pull/29) \u2014 Fix local source packaging through release CLI\n\n\n\n\n\nAll 10 commits\n\n- [e9fd894cde52](https://github.com/ha-homelab/slzb-06-recovery/commit/e9fd894cde5293943a2758410d12c2108f0aca49) \u2014 Include GitHub Actions workflows in security analysis (#21)\n- [646e4ff7fbf1](https://github.com/ha-homelab/slzb-06-recovery/commit/646e4ff7fbf18fd5a95625b187d5bd9634d341b8) \u2014 Document the verified HTTPS runtime for firmware downloads (#22)\n- [218bf4a4457a](https://github.com/ha-homelab/slzb-06-recovery/commit/218bf4a4457a57d3f018bb9731232dff0e4e752f) \u2014 Document the verified HTTPS/WSS profile for host helpers (#23)\n- [6564b7854131](https://github.com/ha-homelab/slzb-06-recovery/commit/6564b785413153a098a6d54b62197028e36cdd10) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from 84f48589324c4b8b51c903839b96a1fa0302ec82 to ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 in the github-actions group (#19)\n- [0c3fde307418](https://github.com/ha-homelab/slzb-06-recovery/commit/0c3fde30741888c6f48fbcc345e47e42cfe76065) \u2014 build(deps): bump victron-venus/venus-os-ci-toolkit/.github/workflows/coderabbit-autofix-reusable.yml from ba44ba6d9b63e884a5bde2dd30a990bb434cfe74 to b93b2e5dd29237f254e5273acf91272abbcd33d9 in the github-actions group (#24)\n- [5ddce107008f](https://github.com/ha-homelab/slzb-06-recovery/commit/5ddce107008ff72d875ad3301c49ad00952bdc11) \u2014 docs: add illustrated Zigbee firmware and recovery field guide (#25)\n- [2417a5514f93](https://github.com/ha-homelab/slzb-06-recovery/commit/2417a5514f930e12b54df184e9f31a2572b9241c) \u2014 build(deps): bump the github-actions group with 7 updates (#26)\n- [d5e59ca311d1](https://github.com/ha-homelab/slzb-06-recovery/commit/d5e59ca311d11720d2d406392e4e8d1955d96044) \u2014 Add RC-only fuzzing and verified recovery-tool source releases (#27)\n- [5c8a5f55e8bf](https://github.com/ha-homelab/slzb-06-recovery/commit/5c8a5f55e8bfaf760243f0982fdc88393a78ca00) \u2014 Clarify fuzz execution-count evidence (#28)\n- [47adb5270175](https://github.com/ha-homelab/slzb-06-recovery/commit/47adb52701751cfdd45a0bc9ae8a251f0c322cc5) \u2014 Fix local source packaging through release CLI (#29)\n\n\n\n\n\n---\n\n## ha-homelab/home-studio \u2014 v0.6.1\n\n[Published stable release](https://github.com/ha-homelab/home-studio/releases/tag/v0.6.1)\n\n## Changes in 0.6.1\n\n- Add bounded, offline RC-only Jazzer.js campaigns for imported project validation and wall/polygon geometry.\n- Publish deterministic public source ZIPs with embedded versions, checksums and source-bound evidence.\n- Preserve existing GitHub Pages publishing and private project exclusions.\n\n### Upgrade\n\nUnpack the public source ZIP into a new directory and keep personal project\nfiles separate. The editor/compiler interfaces and existing Pages deployment\nremain unchanged. Back up your Home Assistant configuration and use the\ndocumented installer dry-run before replacing an installed component.\n\n### Security\n\nOffline RC fuzzing validates synthetic project inputs and geometry, with\nnetwork isolation and bounded resource use. The source archive is built only\nfrom the reviewed public allowlist. Real household plans, private device\nbindings and credentials must stay outside the repository and public corpus.\n\n## Build provenance\n\nPromoted unchanged from [v0.6.1-rc.2](https://github.com/ha-homelab/home-studio/releases/tag/v0.6.1-rc.2).\n\nSource: `aa0b0f3943447fa4245f39e5a66207e4f84844d7`\n\nValidation: https://github.com/ha-homelab/home-studio/actions/runs/38511126498\n\nPromotion: https://github.com/ha-homelab/home-studio/actions/runs/38511867734\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.6.0\n\nReleased source: [aa0b0f394344](https://github.com/ha-homelab/home-studio/commit/aa0b0f3943447fa4245f39e5a66207e4f84844d7).\nPrevious stable source: [6b87971adf50](https://github.com/ha-homelab/home-studio/commit/6b87971adf5054bdecce4825325c356933f23ff3).\n\n[Full source history](https://github.com/ha-homelab/home-studio/compare/6b87971adf5054bdecce4825325c356933f23ff3...aa0b0f3943447fa4245f39e5a66207e4f84844d7). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 17 merged pull requests\n\n- [#2](https://github.com/ha-homelab/home-studio/pull/2) \u2014 Clarify the complete toolkit and ignore generated home data\n- [#3](https://github.com/ha-homelab/home-studio/pull/3) \u2014 Expire optional module diagnostics at their original deadline\n- [#4](https://github.com/ha-homelab/home-studio/pull/4) \u2014 Outline visible wall tops in turquoise\n- [#5](https://github.com/ha-homelab/home-studio/pull/5) \u2014 Show full windows through translucent walls with two-tone contours\n- [#6](https://github.com/ha-homelab/home-studio/pull/6) \u2014 Retain the last TV picture across refresh failures\n- [#7](https://github.com/ha-homelab/home-studio/pull/7) \u2014 Add passive iridescence to translucent walls\n- [#8](https://github.com/ha-homelab/home-studio/pull/8) \u2014 Link media previews to TV and camera positions\n- [#9](https://github.com/ha-homelab/home-studio/pull/9) \u2014 Add lower-floor context and passive telemetry overlays\n- [#10](https://github.com/ha-homelab/home-studio/pull/10) \u2014 Include circuit watts in existing room names\n- [#11](https://github.com/ha-homelab/home-studio/pull/11) \u2014 Avoid obsolete editor draws during embedded Home startup\n- [#12](https://github.com/ha-homelab/home-studio/pull/12) \u2014 Preserve asynchronous first Home render after initialization\n- [#13](https://github.com/ha-homelab/home-studio/pull/13) \u2014 Qualify public source RCs with project and geometry fuzzing\n- [#14](https://github.com/ha-homelab/home-studio/pull/14) \u2014 Document supported local packaging commands\n- [#15](https://github.com/ha-homelab/home-studio/pull/15) \u2014 Add a furniture and accessory library to the planner\n- [#16](https://github.com/ha-homelab/home-studio/pull/16) \u2014 Expand the object library to 104 designs with compact geometry\n- [#17](https://github.com/ha-homelab/home-studio/pull/17) \u2014 Expand the decor library to 149 designs with an illustrated placement guide\n- [#18](https://github.com/ha-homelab/home-studio/pull/18) \u2014 Expand interior catalog with coordinated palettes and surface patterns\n\n\n\n\n\nAll 28 commits\n\n- [536c9fedf34e](https://github.com/ha-homelab/home-studio/commit/536c9fedf34e8e043305b9f326c186b16c70cab2) \u2014 Clarify the complete toolkit and ignore generated home data (#2)\n- [a3805ddd0f7f](https://github.com/ha-homelab/home-studio/commit/a3805ddd0f7f511e38a4250dea88bf9928dcc72f) \u2014 Expire optional module diagnostics at their original display deadline (#3)\n- [3c4b0380a4a3](https://github.com/ha-homelab/home-studio/commit/3c4b0380a4a36d6c842b2c43d28a4148f58ac37a) \u2014 Add turquoise outlines along visible wall tops (#4)\n- [4cd62c40c521](https://github.com/ha-homelab/home-studio/commit/4cd62c40c52132dff87ba8d9517fb694d11e5438) \u2014 Show full windows through translucent walls with two-tone contours (#5)\n- [1c1ac96b0bd4](https://github.com/ha-homelab/home-studio/commit/1c1ac96b0bd41af3c070ddeec25863d7b1a41545) \u2014 Retain the last TV picture across refresh failures (#6)\n- [0da29b3f6d2b](https://github.com/ha-homelab/home-studio/commit/0da29b3f6d2b9f397ae6dfc3cf28edd6445d1a9b) \u2014 Add passive view-dependent iridescence to translucent walls\n- [58a8e8e51462](https://github.com/ha-homelab/home-studio/commit/58a8e8e51462037fd2e0ad12117fbe1dd433f52a) \u2014 Link TV and camera previews to their positions on the plan\n- [96636af610cf](https://github.com/ha-homelab/home-studio/commit/96636af610cf988d5162dc04f18e759a15d9d0a8) \u2014 Refresh preview controls when a TV binding changes\n- [a8b5f8bfda9e](https://github.com/ha-homelab/home-studio/commit/a8b5f8bfda9ea125a812087afa9e70cceaa28515) \u2014 Place orthogonal media callouts only in free screen space\n- [dbc4ce33115a](https://github.com/ha-homelab/home-studio/commit/dbc4ce33115a3abcc798720f1c288677ce806eaf) \u2014 Add muted lower-floor context without changing active-floor focus\n- [551a43874ee2](https://github.com/ha-homelab/home-studio/commit/551a43874ee2136272fb524f52856c8269211fad) \u2014 Add passive telemetry cards and object power labels\n- [54d794206a74](https://github.com/ha-homelab/home-studio/commit/54d794206a7434b452775f751029c95a1a039b38) \u2014 Reflect HA brightness in light indicator fill and glow\n- [4f1cd449c162](https://github.com/ha-homelab/home-studio/commit/4f1cd449c1621ab56f00ccfdfec0c709d47ae51d) \u2014 Merge pull request #7 from ha-homelab/feat/passive-wall-sheen\n- [f6fc8f7aa531](https://github.com/ha-homelab/home-studio/commit/f6fc8f7aa5312edef803694e9fe9129297ed808e) \u2014 Merge pull request #8 from ha-homelab/feat/linked-media-previews\n- [83113ef51a74](https://github.com/ha-homelab/home-studio/commit/83113ef51a74dc0f3309571fcccd9cc2dd452278) \u2014 Merge pull request #9 from ha-homelab/feat/lower-floor-context\n- [cccbfb0d1841](https://github.com/ha-homelab/home-studio/commit/cccbfb0d184140e7d520a8e2991ef5117df8f092) \u2014 Display shared circuit power beside rooms without splitting readings\n- [2824ebc11535](https://github.com/ha-homelab/home-studio/commit/2824ebc11535c9d2eb81dd8c809ca7b7fa72fe9b) \u2014 Put circuit watts directly in existing room captions\n- [45da3ceb0b4e](https://github.com/ha-homelab/home-studio/commit/45da3ceb0b4e0f5ad95dee8f1ac0910f39d3d763) \u2014 Merge pull request #10 from ha-homelab/feat/circuit-power-labels\n- [4020f4e5cbcc](https://github.com/ha-homelab/home-studio/commit/4020f4e5cbcce6c483dfd03edcd2f364e6403658) \u2014 Defer embedded viewer drawing until Home is selected\n- [ab2b2dcb6fd4](https://github.com/ha-homelab/home-studio/commit/ab2b2dcb6fd4060f50b4f083f44dfbde4564b816) \u2014 Merge pull request #11 from ha-homelab/fix/embedded-home-startup\n- [22e504c9d07a](https://github.com/ha-homelab/home-studio/commit/22e504c9d07aafa0083a3c7c328c0651c08c3bd2) \u2014 Keep the initial embedded Home draw asynchronous\n- [642e7c17a01f](https://github.com/ha-homelab/home-studio/commit/642e7c17a01f3a926cfae19f9d3e4fa9653dfa33) \u2014 Merge pull request #12 from ha-homelab/fix/defer-initial-home-frame\n- [f1d5e335f062](https://github.com/ha-homelab/home-studio/commit/f1d5e335f0626a6dbcab8f6f514c6176b28b4391) \u2014 Qualify public source RCs with project and geometry fuzzing (#13)\n- [a980495f0d8a](https://github.com/ha-homelab/home-studio/commit/a980495f0d8a3c3a0fb8465bb9bda85e9557bbc1) \u2014 docs: clarify supported local release packaging (#14)\n- [df197abbca1c](https://github.com/ha-homelab/home-studio/commit/df197abbca1c9cec82b306adeb9042f150ad2be6) \u2014 Add a furniture and accessory library to the planner (#15)\n- [233a63170d8d](https://github.com/ha-homelab/home-studio/commit/233a63170d8d6d7fd95478ef6b6a21bbff80e2d4) \u2014 Expand the object library to 104 designs with compact geometry (#16)\n- [b9162d9433e8](https://github.com/ha-homelab/home-studio/commit/b9162d9433e8b4828c18dbb9f6cc432abd2349d4) \u2014 Expand decor library with textiles, lighting, plants and display bears (#17)\n- [aa0b0f394344](https://github.com/ha-homelab/home-studio/commit/aa0b0f3943447fa4245f39e5a66207e4f84844d7) \u2014 Expand interior catalog with coordinated palettes and surface patterns (#18)\n\n\n\n\n\n---\n\n## ha-homelab/home-assistant \u2014 v0.1.0\n\n[Published stable release](https://github.com/ha-homelab/home-assistant/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n### Added\n\n- Package the existing notification-frame cache as an installable Python wheel\n  and source distribution using an explicit three-file build inventory.\n- Bind beta/RC package metadata and receipts to frozen version plans; require\n  the bounded Linux frame-parser campaign before RC publication.\n\n### Upgrade\n\ninstall the exact archive into an isolated Python environment and\n  supply a private cache directory explicitly. Existing household deployment\n  and configuration tooling is unchanged and is not invoked by publication.\n\n### Security\n\npackages exclude household configuration, endpoint-bearing helpers,\n  private state and child libraries. Synthetic tests do not establish live\n  camera, notification-delivery or installation acceptance.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.2](https://github.com/ha-homelab/home-assistant/releases/tag/v0.1.0-rc.2).\n\nSource: `d32d38cf636b2eda63a257e9df1e10f138acbecc`\n\nValidation: https://github.com/ha-homelab/home-assistant/actions/runs/38510898464\n\nPromotion: https://github.com/ha-homelab/home-assistant/actions/runs/38511543165\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [d32d38cf636b](https://github.com/ha-homelab/home-assistant/commit/d32d38cf636b2eda63a257e9df1e10f138acbecc).\n\n[Full source history](https://github.com/ha-homelab/home-assistant/commits/d32d38cf636b2eda63a257e9df1e10f138acbecc). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 9 merged pull requests\n\n- [#2](https://github.com/ha-homelab/home-assistant/pull/2) \u2014 Document Studio Curtains controls and enable opt-in CI approval\n- [#1](https://github.com/ha-homelab/home-assistant/pull/1) \u2014 Retire obsolete MQTT diagnostics and stale entity metadata\n- [#3](https://github.com/ha-homelab/home-assistant/pull/3) \u2014 Move Studio curtain schedules to the calibrated ZHA motor\n- [#4](https://github.com/ha-homelab/home-assistant/pull/4) \u2014 Document prominent Bedroom Lamp controls and motion troubleshooting\n- [#5](https://github.com/ha-homelab/home-assistant/pull/5) \u2014 Remove personal contact and hardware identifiers from public examples\n- [#7](https://github.com/ha-homelab/home-assistant/pull/7) \u2014 Bootstrap trusted approval before callable CI migration\n- [#6](https://github.com/ha-homelab/home-assistant/pull/6) \u2014 Package the portable frame-cache library with verified RC releases\n- [#8](https://github.com/ha-homelab/home-assistant/pull/8) \u2014 Validate project release notes before candidate publication\n- [#9](https://github.com/ha-homelab/home-assistant/pull/9) \u2014 docs: describe completed RC fuzz qualification\n\n\n\n\n\nAll 10 commits\n\n- [6c8b8b917e97](https://github.com/ha-homelab/home-assistant/commit/6c8b8b917e97685600079bc8012f8362f916d4d0) \u2014 Publish sanitized Home Assistant configuration with bundled libraries\n- [f1ffda2aabd9](https://github.com/ha-homelab/home-assistant/commit/f1ffda2aabd9f77cea9bda2af539f0de814b458f) \u2014 Document Studio Curtains controls and enable opt-in CI approval (#2)\n- [f5d3376b27b2](https://github.com/ha-homelab/home-assistant/commit/f5d3376b27b2008c3d1ab032da343a6acccab6aa) \u2014 Retire obsolete MQTT diagnostics and stale entity metadata (#1)\n- [5107592c24c3](https://github.com/ha-homelab/home-assistant/commit/5107592c24c3c55a25a24ef6dc31dbede4d730ae) \u2014 Move Studio curtain schedules to the calibrated ZHA motor (#3)\n- [8ced5fb08fdb](https://github.com/ha-homelab/home-assistant/commit/8ced5fb08fdb2433efc3b96783e58a4d5c50a9f2) \u2014 Document prominent Bedroom Lamp controls and motion troubleshooting (#4)\n- [e4adce7e2fe7](https://github.com/ha-homelab/home-assistant/commit/e4adce7e2fe72ca966a98e0ddc1e12b0d3ac7e50) \u2014 Remove personal contact and hardware identifiers from public examples (#5)\n- [fe2975a6eed6](https://github.com/ha-homelab/home-assistant/commit/fe2975a6eed607fb2c3e84a274e1c85449bf020e) \u2014 Bootstrap trusted approval before callable CI migration (#7)\n- [e4fc69eded1f](https://github.com/ha-homelab/home-assistant/commit/e4fc69eded1f5cc7a4a1f5a552cc75d433aa0e59) \u2014 Package the portable frame-cache library with verified RC releases (#6)\n- [87bce7e550b6](https://github.com/ha-homelab/home-assistant/commit/87bce7e550b6cc859de5c144dcd17b48b8ab8df4) \u2014 Validate project release notes before candidate publication (#8)\n- [d32d38cf636b](https://github.com/ha-homelab/home-assistant/commit/d32d38cf636b2eda63a257e9df1e10f138acbecc) \u2014 docs: describe completed RC fuzz qualification (#9)\n\n\n\n\n\n---\n\n## ha-homelab/k3s-self-healing \u2014 v0.1.2\n\n[Published stable release](https://github.com/ha-homelab/k3s-self-healing/releases/tag/v0.1.2)\n\n## Changes in 0.1.2\n\n### Added\n\n- Add frozen beta/RC source plans and archive receipts while preserving the\n  deterministic public-source distribution and companion SHA-256 file.\n- Require Linux mutation campaigns for recorder metadata and runtime contracts\n  before RC publication, alongside all existing source, privacy and HA tests.\n\n### Upgrade\n\nextract the exact source archive separately and review private site\n  configuration before installation. No cluster, restore or update command is\n  executed by packaging or release publication.\n\n### Security\n\nretain the explicit publication inventory, imported HA source\n  integrity and privacy checks. The reserved example.test email domain is\n  recognized as synthetic test data; actual identifiers remain rejected.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.2-rc.2](https://github.com/ha-homelab/k3s-self-healing/releases/tag/v0.1.2-rc.2).\n\nSource: `2cfc25c2c72cc4bda3505757de3503499642c83f`\n\nValidation: https://github.com/ha-homelab/k3s-self-healing/actions/runs/38510902548\n\nPromotion: https://github.com/ha-homelab/k3s-self-healing/actions/runs/38511493640\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.1\n\nReleased source: [2cfc25c2c72c](https://github.com/ha-homelab/k3s-self-healing/commit/2cfc25c2c72cc4bda3505757de3503499642c83f).\nPrevious stable source: [6bd7cefb3c91](https://github.com/ha-homelab/k3s-self-healing/commit/6bd7cefb3c91f32d3eabd7cb012270648558cc76).\n\n[Full source history](https://github.com/ha-homelab/k3s-self-healing/compare/6bd7cefb3c91f32d3eabd7cb012270648558cc76...2cfc25c2c72cc4bda3505757de3503499642c83f). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 2 merged pull requests\n\n- [#2](https://github.com/ha-homelab/k3s-self-healing/pull/2) \u2014 Add frozen public-source releases and bounded RC validation\n- [#3](https://github.com/ha-homelab/k3s-self-healing/pull/3) \u2014 docs: describe completed RC fuzz qualification\n\n\n\n\n\nAll 2 commits\n\n- [8751cb7744cb](https://github.com/ha-homelab/k3s-self-healing/commit/8751cb7744cbea563c90a7263148faa10c1e2554) \u2014 Add frozen public-source releases and bounded RC validation (#2)\n- [2cfc25c2c72c](https://github.com/ha-homelab/k3s-self-healing/commit/2cfc25c2c72cc4bda3505757de3503499642c83f) \u2014 docs: describe completed RC fuzz qualification (#3)\n\n\n\n\n\n---\n\n## ha-homelab/ha-lg-tv-capture \u2014 v0.1.0\n\n[Published stable release](https://github.com/ha-homelab/ha-lg-tv-capture/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n### Added\n\n- Add a Home Assistant configuration flow for TVs already paired through the\n  built-in LG webOS Smart TV integration.\n- Provide a snapshot camera and an optional authenticated WebSocket API.\n- Share one in-memory frame and a 60-second capture/failure cooldown per TV.\n- Invalidate frames on source, power and connection changes; preserve the\n  original timestamp when an unchanged source's refresh fails.\n- Pin downloads to the paired TLS certificate, restrict capture URLs, bound\n  image downloads and return metadata-free JPEG thumbnails.\n- Export a reusable capture core for trusted Home Assistant integrations.\n\nCompatibility: requires Home Assistant 2026.10.1 or newer. Automated contracts\nare tested against 2026.10.1. Screenshot availability depends on TV firmware\nand app/content restrictions. Root access and developer mode are not required.\n\n### Upgrade\n\nThis is the first standalone release. Install through HACS as a custom\nintegration or extract the release ZIP into the Home Assistant configuration\ndirectory, then restart Home Assistant. Pair the television with the built-in\nLG webOS integration before adding LG TV Capture.\n\n### Security\n\nCaptures reuse the existing paired TLS connection and verify downloads against\nits certificate. Image requests are authenticated, bounded, and restricted to\nthe paired television. Frames remain in memory; camera tokens and saved\nsnapshots should be treated as private. WebSocket screenshot access is opt-in.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.3](https://github.com/ha-homelab/ha-lg-tv-capture/releases/tag/v0.1.0-rc.3).\n\nSource: `b182794e500e78141545d735f4d4cb038dc842a9`\n\nValidation: https://github.com/ha-homelab/ha-lg-tv-capture/actions/runs/38511091238\n\nPromotion: https://github.com/ha-homelab/ha-lg-tv-capture/actions/runs/38511699431\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [b182794e500e](https://github.com/ha-homelab/ha-lg-tv-capture/commit/b182794e500e78141545d735f4d4cb038dc842a9).\n\n[Full source history](https://github.com/ha-homelab/ha-lg-tv-capture/commits/b182794e500e78141545d735f4d4cb038dc842a9). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 4 merged pull requests\n\n- [#1](https://github.com/ha-homelab/ha-lg-tv-capture/pull/1) \u2014 Publish LG TV Capture integration and secure release pipeline\n- [#2](https://github.com/ha-homelab/ha-lg-tv-capture/pull/2) \u2014 Bump ruff from 0.14.1 to 0.17.0 in the testing group\n- [#3](https://github.com/ha-homelab/ha-lg-tv-capture/pull/3) \u2014 Fix release notes and reuse shared PR approval\n- [#4](https://github.com/ha-homelab/ha-lg-tv-capture/pull/4) \u2014 Validate paired certificate strength before LG screenshot requests\n\n\n\n\n\nAll 5 commits\n\n- [8c72a8a2b04f](https://github.com/ha-homelab/ha-lg-tv-capture/commit/8c72a8a2b04fb9379a0994b2f0941fe91ddd9bae) \u2014 Initial commit\n- [c1c8f3164a27](https://github.com/ha-homelab/ha-lg-tv-capture/commit/c1c8f3164a27da33d0fdb0a56858700927f17ecc) \u2014 Publish LG TV Capture integration and secure release pipeline (#1)\n- [81718829d357](https://github.com/ha-homelab/ha-lg-tv-capture/commit/81718829d357345020f76abb77f76495c515d25c) \u2014 Bump ruff from 0.14.1 to 0.17.0 in the testing group (#2)\n- [3d26a384ab4d](https://github.com/ha-homelab/ha-lg-tv-capture/commit/3d26a384ab4d111279695c63da8b854db1415105) \u2014 Fix release notes and reuse shared PR approval (#3)\n- [b182794e500e](https://github.com/ha-homelab/ha-lg-tv-capture/commit/b182794e500e78141545d735f4d4cb038dc842a9) \u2014 Validate paired certificate strength before LG screenshot requests (#4)\n\n\n\n\n\n---\n\n## open-ott-play/ottplay-foss \u2014 v1.1.54\n\n[Published stable release](https://github.com/open-ott-play/ottplay-foss/releases/tag/v1.1.54)\n\n## Changes in 1.1.54\n\n### Changes\n\n- Gate release candidates on bounded portal-request and XMLTV fuzz campaigns, retaining source-bound validation evidence.\n- Show an explicit loading wait when full-screen Plex Up/Down needs to load the\n  neighboring file or restore its folder queue. Back cancels the pending switch\n  and keeps the current file selected; repeated arrows update the selection.\n- Retry transient Plex catalog and file-resolution failures within bounded\n  attempts, and reuse Tauri HTTP connections while preserving per-request\n  timeouts and separate control-transport security policies.\n- Avoid a WebKit stall when resuming HLS after a reload by applying the saved\n  position through the stream engine after its initial media buffer is ready.\n- Preserve pending HLS seeks through loading retries and decoder recovery,\n  including seeks to the beginning of a stream.\n- Stop both main and PiP streams on standby, reset native media resource\n  selection, and cancel preview and pending Plex playback so background\n  callbacks cannot restart those streams. Plex playback remains blocked until\n  wake; the remote-control connection stays available.\n- Save the currently playing channel or film as a remote favorite, with its\n  provider/profile binding and durable item reference. Selecting a favorite\n  loads the saved profile and resolves the item through its provider; temporary\n  playback URLs are not used as saved launch targets.\n- Prepare Plex library queues from the complete, validated catalog without a\n  redundant bulk metadata request that could time out and incorrectly report\n  playable videos as unavailable. The first video is still resolved before\n  playback starts.\n- Start or preview a complete Plex movie/TV library by name or section ID,\n  optionally shuffled, using the player's saved connection and bounded complete\n  pagination. Ambiguous or incomplete selections leave existing playback intact.\n\n### Upgrade\n\nUpdate the control server and CLI to versions with `plex_library` support, then\nupdate or reload the player to use the new library commands. The player's saved\nPlex connection is reused; no settings or data migration is required.\n\nRemote favorites require `favorites` support in the player, control server and\nCLI. Existing profile-local favorites retain their storage format and scope.\n\n### Security\n\nExisting remote-control authorization, parental restrictions, runtime binding\nand request-cancellation checks remain in force. This release introduces no new\ncredential format.\n\n## Build provenance\n\nPromoted unchanged from [v1.1.54-rc.3](https://github.com/open-ott-play/ottplay-foss/releases/tag/v1.1.54-rc.3).\n\nSource: `e1123fcbe8eeabc925d8a65137916226aa0874a8`\n\nValidation: https://github.com/open-ott-play/ottplay-foss/actions/runs/38510913130\n\nPromotion: https://github.com/open-ott-play/ottplay-foss/actions/runs/38514067028\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v1.1.53\n\nReleased source: [e1123fcbe8ee](https://github.com/open-ott-play/ottplay-foss/commit/e1123fcbe8eeabc925d8a65137916226aa0874a8).\nPrevious stable source: [ef31f556ba88](https://github.com/open-ott-play/ottplay-foss/commit/ef31f556ba88a60943488b5af9ac1b1f44710359).\n\n[Full source history](https://github.com/open-ott-play/ottplay-foss/compare/ef31f556ba88a60943488b5af9ac1b1f44710359...e1123fcbe8eeabc925d8a65137916226aa0874a8). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 20 merged pull requests\n\n- [#754](https://github.com/open-ott-play/ottplay-foss/pull/754) \u2014 feat: play Plex libraries by name with shuffle\n- [#756](https://github.com/open-ott-play/ottplay-foss/pull/756) \u2014 docs: add required 1.1.54 release notes\n- [#757](https://github.com/open-ott-play/ottplay-foss/pull/757) \u2014 fix: retire stale playback and sleep callbacks\n- [#759](https://github.com/open-ott-play/ottplay-foss/pull/759) \u2014 fix: keep beta playback bundle within size budget\n- [#760](https://github.com/open-ott-play/ottplay-foss/pull/760) \u2014 fix(lg): restore Right-arrow programme info on existing installations\n- [#761](https://github.com/open-ott-play/ottplay-foss/pull/761) \u2014 fix(plex): avoid redundant library metadata requests\n- [#762](https://github.com/open-ott-play/ottplay-foss/pull/762) \u2014 fix: recognize Firefox channel shortcuts from USB remotes\n- [#716](https://github.com/open-ott-play/ottplay-foss/pull/716) \u2014 chore(deps): update github actions and reusable workflows\n- [#755](https://github.com/open-ott-play/ottplay-foss/pull/755) \u2014 Update validated runtime dependencies and retain safe lint tooling\n- [#736](https://github.com/open-ott-play/ottplay-foss/pull/736) \u2014 fix(deps): bump rust from 1.98-alpine to 1.99-alpine\n- [#758](https://github.com/open-ott-play/ottplay-foss/pull/758) \u2014 chore: update ottplay-shared-core\n- [#766](https://github.com/open-ott-play/ottplay-foss/pull/766) \u2014 fix(ui): update build tools and delegate native CSP controls\n- [#765](https://github.com/open-ott-play/ottplay-foss/pull/765) \u2014 fix(deps-dev): bump the npm-lockfile group with 4 updates\n- [#767](https://github.com/open-ott-play/ottplay-foss/pull/767) \u2014 feat: save current playback as cross-profile remote favorites\n- [#768](https://github.com/open-ott-play/ottplay-foss/pull/768) \u2014 fix: stop all media streams when entering standby\n- [#769](https://github.com/open-ott-play/ottplay-foss/pull/769) \u2014 docs: clarify kiosk media selection and input limits\n- [#770](https://github.com/open-ott-play/ottplay-foss/pull/770) \u2014 chore(deps): update github actions and reusable workflows\n- [#771](https://github.com/open-ott-play/ottplay-foss/pull/771) \u2014 Fix Plex file switching and WebKit HLS resume stalls\n- [#772](https://github.com/open-ott-play/ottplay-foss/pull/772) \u2014 ci: gate release candidates on bounded fuzzing\n- [#773](https://github.com/open-ott-play/ottplay-foss/pull/773) \u2014 chore: update ottplay-shared-core\n\n\n\n\n\nAll 32 commits\n\n- [a9459b4df595](https://github.com/open-ott-play/ottplay-foss/commit/a9459b4df595fe8060cf37f4ed086a70a81d0256) \u2014 fix(deps): bump rust from 1.98-alpine to 1.99-alpine\n- [5a40b4682e49](https://github.com/open-ott-play/ottplay-foss/commit/5a40b4682e495e3eb057e01fac8e29df0182bdb7) \u2014 feat: play Plex libraries by name with shuffle (#754)\n- [0db30356289c](https://github.com/open-ott-play/ottplay-foss/commit/0db30356289c2bb8a485b4d4dd7db58ef971070c) \u2014 fix(deps): bump the npm-lockfile group across 1 directory with 9 updates\n- [6d1a2780cee7](https://github.com/open-ott-play/ottplay-foss/commit/6d1a2780cee7c4b2772f57c168abbd57dc1c776a) \u2014 docs: add release notes for the 1.1.54 development line (#756)\n- [591cd782f2ba](https://github.com/open-ott-play/ottplay-foss/commit/591cd782f2ba495d38fdba4d8665aa61db61a212) \u2014 fix: retire stale playback and sleep callbacks (#757)\n- [315453376548](https://github.com/open-ott-play/ottplay-foss/commit/3154533765488c747502912739478e1a0458b508) \u2014 chore: update ottplay-shared-core vendor package\n- [77dedba2441c](https://github.com/open-ott-play/ottplay-foss/commit/77dedba2441c3a08bcdc7810cfa4fb7d84c0093c) \u2014 fix: compact playback ownership checks for beta builds (#759)\n- [04426eab7299](https://github.com/open-ott-play/ottplay-foss/commit/04426eab729916aa3fffbfa7a36456029263e147) \u2014 fix(lg): restore Right-arrow programme info on existing installations (#760)\n- [77449b9533f3](https://github.com/open-ott-play/ottplay-foss/commit/77449b9533f3a66981771b8e82eac73ec374afa0) \u2014 fix(plex): avoid redundant library metadata requests (#761)\n- [e234e4015146](https://github.com/open-ott-play/ottplay-foss/commit/e234e40151464b78ce60b84dfa61ed931f4a6774) \u2014 fix: normalize Firefox channel shortcut key codes (#762)\n- [5f132d1468f8](https://github.com/open-ott-play/ottplay-foss/commit/5f132d1468f8a7ecf8593ae806a542bdf6844f31) \u2014 Merge remote-tracking branch 'origin/main' into vendor-current\n- [59f9adf45707](https://github.com/open-ott-play/ottplay-foss/commit/59f9adf45707c9662293e72a70a7eefbcf31def8) \u2014 Merge remote-tracking branch 'origin/main' into npm-current\n- [93340634524d](https://github.com/open-ott-play/ottplay-foss/commit/93340634524d5ef3691aa6999e1f37fe4839e745) \u2014 Merge branch 'main' into dependabot/docker/rust-1.99-alpine\n- [c99339e0fed0](https://github.com/open-ott-play/ottplay-foss/commit/c99339e0fed0284c5116d140639bef23c384b929) \u2014 chore(deps): update github actions and reusable workflows (#716)\n- [533b7cc262ff](https://github.com/open-ott-play/ottplay-foss/commit/533b7cc262ff0e5d025c37df2e996ca34d139d7c) \u2014 fix(deps): retain safe lint tooling and rebuild runtime assets\n- [40aaae237683](https://github.com/open-ott-play/ottplay-foss/commit/40aaae237683da0c8c2253fea5c08dce70b98283) \u2014 Merge remote-tracking branch 'origin/main' into npm-current\n- [383c20bc35b1](https://github.com/open-ott-play/ottplay-foss/commit/383c20bc35b1500f859cb0084d02e1c1597b9322) \u2014 Merge branch 'main' into dependabot/docker/rust-1.99-alpine\n- [69ebba907a5c](https://github.com/open-ott-play/ottplay-foss/commit/69ebba907a5cc302d6722d7cf35f6c23ee9dc924) \u2014 Merge branch 'main' into codex/vendor-e506019118f8c29e70a0587bb2d205bfeb17dc0f4adf1a77a697ff2e2d0b4011\n- [12c392f23d9b](https://github.com/open-ott-play/ottplay-foss/commit/12c392f23d9b8eb0c671f9a56859f5b3d95fe786) \u2014 Merge branches 'rust-combined' and 'vendor-combined' into npm-current\n- [1fe11bf70091](https://github.com/open-ott-play/ottplay-foss/commit/1fe11bf7009188232987ef73689d5c24194d9167) \u2014 Apply Shaka playback fixes to the native runtime\n- [4c6017690b8b](https://github.com/open-ott-play/ottplay-foss/commit/4c6017690b8b7fc72ecdf128af4dbde2231abcce) \u2014 Merge pull request #755 from open-ott-play/dependabot/npm_and_yarn/npm-lockfile-21a32aa6f9\n- [ecc965796fce](https://github.com/open-ott-play/ottplay-foss/commit/ecc965796fceed10c0fb6f8eb9cb39cb278679f3) \u2014 fix(deps-dev): bump the npm-lockfile group with 4 updates\n- [945c467640bf](https://github.com/open-ott-play/ottplay-foss/commit/945c467640bfc6bac01adf271cd1ef3f8e39355f) \u2014 fix(ui): delegate native controls under strict CSP\n- [d700e36392d4](https://github.com/open-ott-play/ottplay-foss/commit/d700e36392d416465edada58b28ae56d8c8745a8) \u2014 refactor(ui): share color arrow markup within bundle budget\n- [47465f8dfb59](https://github.com/open-ott-play/ottplay-foss/commit/47465f8dfb59adc8c3fe82b1c67ae6e363baecf2) \u2014 Merge pull request #766 from open-ott-play/fix/build-tools-native-csp\n- [5e79f3ee81fd](https://github.com/open-ott-play/ottplay-foss/commit/5e79f3ee81fd092f28229639d95f757c585cf396) \u2014 feat: save current playback as cross-profile remote favorites (#767)\n- [dcda2a70a298](https://github.com/open-ott-play/ottplay-foss/commit/dcda2a70a298c741d5022807719c97c1a353db96) \u2014 fix: stop all media streams when entering standby (#768)\n- [bb3fd79bc2e3](https://github.com/open-ott-play/ottplay-foss/commit/bb3fd79bc2e35f5dc3cf9697dd64f80e57399adc) \u2014 docs: clarify kiosk media selection and input limits (#769)\n- [fbc800314e93](https://github.com/open-ott-play/ottplay-foss/commit/fbc800314e9380248821bc71d841416346fd69ce) \u2014 chore(deps): update github actions and reusable workflows (#770)\n- [e1549bf484f5](https://github.com/open-ott-play/ottplay-foss/commit/e1549bf484f58175c779d243b402147e3b1f5b7d) \u2014 Fix Plex file switching and WebKit HLS resume stalls (#771)\n- [d0b264c3e28b](https://github.com/open-ott-play/ottplay-foss/commit/d0b264c3e28b512a01656053306d57ee090fc91c) \u2014 ci: gate release candidates on bounded fuzzing (#772)\n- [e1123fcbe8ee](https://github.com/open-ott-play/ottplay-foss/commit/e1123fcbe8eeabc925d8a65137916226aa0874a8) \u2014 chore: update ottplay-shared-core vendor package (#773)\n\n\n\n\n\n---\n\n## open-ott-play/ottplay-swop \u2014 v0.1.0\n\n[Published stable release](https://github.com/open-ott-play/ottplay-swop/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n### Security\n\n- Qualify public RCs with bounded, offline Jazzer.js mutation campaigns for\n  installation authorization and wire validation. Beta and ordinary PR checks\n  remain free of mutation campaigns.\n\n- Pin the Miniflare toolchain's transitive `sharp` and `undici` dependencies to\n  0.35.5 and 7.29.1 and refresh `source-map-js` to 1.2.2. Reinstall development\n  dependencies with `npm ci --ignore-scripts`. These are build/test tools; the\n  Worker API and stored session format are unchanged.\n\n### Maintenance\n\n- Place the example Wrangler `account_id` at the TOML root so it is not parsed\n  as a rate-limit setting.\n- Add contribution, security and partial OpenSSF evidence documentation. This\n  does not claim a badge or production deployment.\n\n### Release publication\n\n- Read reviewed release notes from the exact package source commit and validate\n  them before writing evidence or advancing the durable publication counter.\n\n- Version updates preserve quoted TOML keys containing `=` or `#`, including\n  unrelated keys, without changing comments or surrounding file layout.\n\n- Release notes accept optional closing hashes in Markdown headings while\n  continuing to reject duplicate version sections.\n\n### Upgrade\n\nRun `npm ci --ignore-scripts` to obtain the corrected build/test dependencies.\nExisting Worker API calls and stored session records remain compatible. Review\nthe root-level example `account_id` before preparing a local configuration. Deploy\nthe archived Worker bundle only through the documented explicit operator procedure;\npublishing or promoting a release does not deploy it.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.4](https://github.com/open-ott-play/ottplay-swop/releases/tag/v0.1.0-rc.4).\n\nSource: `c48c1dc869df3c4d7f802edc6fc8f983ed9a6523`\n\nValidation: https://github.com/open-ott-play/ottplay-swop/actions/runs/38511133581\n\nPromotion: https://github.com/open-ott-play/ottplay-swop/actions/runs/38511709477\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [c48c1dc869df](https://github.com/open-ott-play/ottplay-swop/commit/c48c1dc869df3c4d7f802edc6fc8f983ed9a6523).\n\n[Full source history](https://github.com/open-ott-play/ottplay-swop/commits/c48c1dc869df3c4d7f802edc6fc8f983ed9a6523). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 54 merged pull requests\n\n- [#1](https://github.com/open-ott-play/ottplay-swop/pull/1) \u2014 Add Terraform Cloud IaC for Cloudflare KV\n- [#2](https://github.com/open-ott-play/ottplay-swop/pull/2) \u2014 chore: harden credential gitignores + document TFC remote\n- [#3](https://github.com/open-ott-play/ottplay-swop/pull/3) \u2014 ci: add workflows from foss and terraform siblings\n- [#5](https://github.com/open-ott-play/ottplay-swop/pull/5) \u2014 feat: client-id allowlist auth for TV/desktop API\n- [#4](https://github.com/open-ott-play/ottplay-swop/pull/4) \u2014 chore: TFC org open-ott-play\n- [#6](https://github.com/open-ott-play/ottplay-swop/pull/6) \u2014 docs: expand Access control into operator guide\n- [#7](https://github.com/open-ott-play/ottplay-swop/pull/7) \u2014 chore(terraform): align CF vars with account_xyz/email_xyz/key_xyz\n- [#8](https://github.com/open-ott-play/ottplay-swop/pull/8) \u2014 feat(terraform): manage Cloudflare Worker script\n- [#11](https://github.com/open-ott-play/ottplay-swop/pull/11) \u2014 fix: enable trusted bot approval and checked auto-merge\n- [#12](https://github.com/open-ott-play/ottplay-swop/pull/12) \u2014 fix(deps): update Wrangler to patched sharp dependencies\n- [#13](https://github.com/open-ott-play/ottplay-swop/pull/13) \u2014 fix: recognize trusted bot identities for auto-merge\n- [#14](https://github.com/open-ott-play/ottplay-swop/pull/14) \u2014 ci: use corrected check ordering for auto-merge\n- [#15](https://github.com/open-ott-play/ottplay-swop/pull/15) \u2014 ci: refresh stale approvals after base changes\n- [#16](https://github.com/open-ott-play/ottplay-swop/pull/16) \u2014 ci: add gated release channels and release strategy\n- [#9](https://github.com/open-ott-play/ottplay-swop/pull/9) \u2014 test: require Worker API coverage before release packaging\n- [#17](https://github.com/open-ott-play/ottplay-swop/pull/17) \u2014 Approve trusted PRs without requiring automerge\n- [#18](https://github.com/open-ott-play/ottplay-swop/pull/18) \u2014 fix: pin auto-approval to merged toolkit commit\n- [#19](https://github.com/open-ott-play/ottplay-swop/pull/19) \u2014 Adopt frozen release versions and verified artifact receipts\n- [#20](https://github.com/open-ott-play/ottplay-swop/pull/20) \u2014 fix: update release artifact validation\n- [#21](https://github.com/open-ott-play/ottplay-swop/pull/21) \u2014 fix: scope release secrets and bound nightly Python versions\n- [#22](https://github.com/open-ott-play/ottplay-swop/pull/22) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN\n- [#23](https://github.com/open-ott-play/ottplay-swop/pull/23) \u2014 ci: consolidate validation and enable protected native auto-merge\n- [#24](https://github.com/open-ott-play/ottplay-swop/pull/24) \u2014 refactor: derive SWOP protocol from shared OttPlay wire contract\n- [#25](https://github.com/open-ott-play/ottplay-swop/pull/25) \u2014 ci: skip heavy workflows for documentation-only changes\n- [#26](https://github.com/open-ott-play/ottplay-swop/pull/26) \u2014 docs: remove research reports and comparison history\n- [#27](https://github.com/open-ott-play/ottplay-swop/pull/27) \u2014 perf: overlap bounded client metadata reads\n- [#28](https://github.com/open-ott-play/ottplay-swop/pull/28) \u2014 Authorize SWOP by player installation and make sessions atomic\n- [#29](https://github.com/open-ott-play/ottplay-swop/pull/29) \u2014 Add protected manual TV code entry to SWOP\n- [#30](https://github.com/open-ott-play/ottplay-swop/pull/30) \u2014 Fix repeated Terraform uploads after Durable Object bootstrap\n- [#31](https://github.com/open-ott-play/ottplay-swop/pull/31) \u2014 test: preserve installation session authorization across restart\n- [#32](https://github.com/open-ott-play/ottplay-swop/pull/32) \u2014 feat: provide an authenticated VPortal catalog relay for hosted players\n- [#33](https://github.com/open-ott-play/ottplay-swop/pull/33) \u2014 Allow optional adoption of an existing SWOP custom domain\n- [#34](https://github.com/open-ott-play/ottplay-swop/pull/34) \u2014 Fix vulnerable sharp in the legacy Miniflare dev dependency\n- [#35](https://github.com/open-ott-play/ottplay-swop/pull/35) \u2014 Preserve JSON-escaped SWOP text limits\n- [#36](https://github.com/open-ott-play/ottplay-swop/pull/36) \u2014 fix(swop): reject requests before reading bodies when quota or auth fails\n- [#38](https://github.com/open-ott-play/ottplay-swop/pull/38) \u2014 chore(ci): request CodeRabbit reviews for new public PRs\n- [#37](https://github.com/open-ott-play/ottplay-swop/pull/37) \u2014 docs: clarify the toolkit installer working directory\n- [#39](https://github.com/open-ott-play/ottplay-swop/pull/39) \u2014 perf(auth): skip unused identity body parsing when headers suffice\n- [#40](https://github.com/open-ott-play/ottplay-swop/pull/40) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions\n- [#52](https://github.com/open-ott-play/ottplay-swop/pull/52) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#53](https://github.com/open-ott-play/ottplay-swop/pull/53) \u2014 fix: update vulnerable worker tools and document security boundaries\n- [#55](https://github.com/open-ott-play/ottplay-swop/pull/55) \u2014 build: verify Python dependency archives with SHA-256 locks\n- [#54](https://github.com/open-ott-play/ottplay-swop/pull/54) \u2014 Validate source-bound release notes and broaden security analysis\n- [#56](https://github.com/open-ott-play/ottplay-swop/pull/56) \u2014 Preserve quoted TOML keys during release version updates\n- [#57](https://github.com/open-ott-play/ottplay-swop/pull/57) \u2014 Handle closing Markdown hashes in release notes\n- [#48](https://github.com/open-ott-play/ottplay-swop/pull/48) \u2014 Update and validate the Worker toolchain with coordinated CI\n- [#58](https://github.com/open-ott-play/ottplay-swop/pull/58) \u2014 Update Wrangler and compatible Worker types together\n- [#59](https://github.com/open-ott-play/ottplay-swop/pull/59) \u2014 build(deps-dev): bump wrangler from 4.147.0 to 4.149.0\n- [#60](https://github.com/open-ott-play/ottplay-swop/pull/60) \u2014 Update compatible CI tools and artifact download recovery\n- [#62](https://github.com/open-ott-play/ottplay-swop/pull/62) \u2014 build(deps): bump actions/download-artifact from 8.0.1 to 8.0.2\n- [#63](https://github.com/open-ott-play/ottplay-swop/pull/63) \u2014 build(deps): bump actions/setup-node from 7.0.0 to 7.1.0\n- [#64](https://github.com/open-ott-play/ottplay-swop/pull/64) \u2014 build(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.1\n- [#65](https://github.com/open-ott-play/ottplay-swop/pull/65) \u2014 Fuzz public RC installation authorization and wire contracts\n- [#66](https://github.com/open-ott-play/ottplay-swop/pull/66) \u2014 Verify disabled portal relay and document OpenSSF security profile\n\n\n\n\n\nAll 75 commits\n\n- [bc848c9b8fa3](https://github.com/open-ott-play/ottplay-swop/commit/bc848c9b8fa30cbb62a555292e93a2e76c4df085) \u2014 Initial ottplay-swop Worker (session/form/submit/val)\n- [a24efd6b002b](https://github.com/open-ott-play/ottplay-swop/commit/a24efd6b002b79190a76bda45cb6ecb9a1213bc8) \u2014 Initial commit\n- [41576503782c](https://github.com/open-ott-play/ottplay-swop/commit/41576503782c4eefcf8024478ef453f469ea6577) \u2014 Merge remote LICENSE bootstrap with Worker scaffold\n- [015cac5081cb](https://github.com/open-ott-play/ottplay-swop/commit/015cac5081cbce614222ffd130d74de07d04dcae) \u2014 Add Terraform Cloud IaC for Cloudflare KV namespace (#1)\n- [96ddbbd4f006](https://github.com/open-ott-play/ottplay-swop/commit/96ddbbd4f0063a3c44c9f741df4f9e512866b641) \u2014 chore: harden credential gitignores and document TFC remote setup (#2)\n- [0f1386f47d21](https://github.com/open-ott-play/ottplay-swop/commit/0f1386f47d214528d93125f23ce5483b850598b5) \u2014 ci: add workflows from foss and terraform siblings (#3)\n- [d18bf3d0d87d](https://github.com/open-ott-play/ottplay-swop/commit/d18bf3d0d87d595f14cbd756b6545fd656c14970) \u2014 feat: client-id allowlist for TV-side SWOP routes (#5)\n- [a0c053ad457c](https://github.com/open-ott-play/ottplay-swop/commit/a0c053ad457c5fbfef5be261fd13dd64809ba057) \u2014 chore: TFC org open-ott-play (#4)\n- [30ac0c1684b0](https://github.com/open-ott-play/ottplay-swop/commit/30ac0c1684b0ec3ee50d4960df04d214caae76fc) \u2014 docs: expand Access control into operator guide (#6)\n- [f09d207d1904](https://github.com/open-ott-play/ottplay-swop/commit/f09d207d19047a831a37b0928f2840683a8aebd8) \u2014 chore(terraform): align CF vars with account_xyz/email_xyz/key_xyz (#7)\n- [a0bb0e58eaa9](https://github.com/open-ott-play/ottplay-swop/commit/a0bb0e58eaa90583a643ac5456b90b1bd51a2749) \u2014 docs: explain how to run Terraform locally without Terraform Cloud\n- [c60c6d1205af](https://github.com/open-ott-play/ottplay-swop/commit/c60c6d1205af2639a790605ae50d47d8ac57408a) \u2014 feat(terraform): manage Cloudflare Worker script (not only KV)\n- [a3000ef7285f](https://github.com/open-ott-play/ottplay-swop/commit/a3000ef7285fd2e483f3152880c1bcba6959284f) \u2014 ci: placeholder worker.js so terraform validate can filesha256\n- [f7db2852eab3](https://github.com/open-ott-play/ottplay-swop/commit/f7db2852eab30ead56da3e31940202d2080bcd89) \u2014 Merge pull request #8 from open-ott-play/feat/terraform-manage-worker\n- [33bf74fce2c1](https://github.com/open-ott-play/ottplay-swop/commit/33bf74fce2c10904580e03b5664ba19145f752fb) \u2014 ci: fix broken placeholder step YAML in terraform job\n- [9a2c4a4f0031](https://github.com/open-ott-play/ottplay-swop/commit/9a2c4a4f00310a02f3eec72ce81f9f0ec7e44a96) \u2014 fix: enable trusted bot approval and checked auto-merge (#11)\n- [9ec6cfc5a430](https://github.com/open-ott-play/ottplay-swop/commit/9ec6cfc5a43058e7939c5afd13c2121b567dc202) \u2014 fix(deps): update Wrangler to patched sharp dependencies (#12)\n- [bda89d7602a4](https://github.com/open-ott-play/ottplay-swop/commit/bda89d7602a4c9ca2dfaa4ef1330a49e90bc8f9a) \u2014 fix: recognize trusted bot identities for auto-merge (#13)\n- [da038c826e5b](https://github.com/open-ott-play/ottplay-swop/commit/da038c826e5b021b3f5434abb2c00e57c596bacd) \u2014 fix: wait for replacement auto-merge checks (#14)\n- [e168924bcd77](https://github.com/open-ott-play/ottplay-swop/commit/e168924bcd771c91571a0f87ed1d049fd15dd45c) \u2014 ci: refresh stale approvals after base changes (#15)\n- [75004981152a](https://github.com/open-ott-play/ottplay-swop/commit/75004981152a379073a6d79c127da554a74c71f1) \u2014 ci: gate releases through nightly, candidates and verified promotion (#16)\n- [edc0b1ee2360](https://github.com/open-ott-play/ottplay-swop/commit/edc0b1ee2360467dfcf6489eee9d46ae4d7fb02f) \u2014 test: require Worker API coverage before release packaging (#9)\n- [ab90d724b16c](https://github.com/open-ott-play/ottplay-swop/commit/ab90d724b16c702c6e940b407cd2973a4ca284c9) \u2014 ci: approve trusted PRs without the automerge label (#17)\n- [e28e697c36bb](https://github.com/open-ott-play/ottplay-swop/commit/e28e697c36bb020d7e878bf8ac9c2a169a51828c) \u2014 fix: pin auto-approval to merged toolkit commit (#18)\n- [d0029d3e4cb3](https://github.com/open-ott-play/ottplay-swop/commit/d0029d3e4cb3209ac5f94bd46bbfa9ec750cbd70) \u2014 Adopt frozen release versions and verified artifact receipts\n- [9b2aab089668](https://github.com/open-ott-play/ottplay-swop/commit/9b2aab089668784c2329960df936299ef4c278db) \u2014 Document reviewed release helper Sonar exclusions\n- [8fe8c2ca5b3a](https://github.com/open-ott-play/ottplay-swop/commit/8fe8c2ca5b3a3e948fc0c66cf1499a91b25809bd) \u2014 chore: omit generated Python bytecode from release sources\n- [e76d0f1b780a](https://github.com/open-ott-play/ottplay-swop/commit/e76d0f1b780a5055e83ac3f90e3b701c218e92de) \u2014 Pin the release fixture import compatibility fix\n- [76b0648fa94e](https://github.com/open-ott-play/ottplay-swop/commit/76b0648fa94ebe48667f8ee6c6ba263558ebf551) \u2014 Merge pull request #19 from open-ott-play/codex/release-versions\n- [07c008f865e8](https://github.com/open-ott-play/ottplay-swop/commit/07c008f865e8c37acb9764c1570958e3562a59f1) \u2014 fix: update release artifact validation\n- [a7c38716ae0d](https://github.com/open-ott-play/ottplay-swop/commit/a7c38716ae0d1029ae7b5210a1ecd8e3fe0fa8c3) \u2014 Merge pull request #20 from open-ott-play/fix/release-toolkit-ba7c4ece1188\n- [f89c9f02158a](https://github.com/open-ott-play/ottplay-swop/commit/f89c9f02158a46ce6695ad380d2bafe4fecfc1ce) \u2014 fix: scope release secrets and bound nightly Python versions (#21)\n- [277383d5a9fc](https://github.com/open-ott-play/ottplay-swop/commit/277383d5a9fc7f971a1d00fa8837f4872c857922) \u2014 ci: approve Dependabot PRs with GITHUB_TOKEN (#22)\n- [6272a5045578](https://github.com/open-ott-play/ottplay-swop/commit/6272a50455789fdbeda90e863ffa3e7125e6876d) \u2014 ci: consolidate required validation and use protected native auto-merge (#23)\n- [5caa0853fded](https://github.com/open-ott-play/ottplay-swop/commit/5caa0853fded09ddd7293bb6d48c9b60ebaeac86) \u2014 refactor: derive SWOP protocol from shared OttPlay wire contract (#24)\n- [cb0194b9873c](https://github.com/open-ott-play/ottplay-swop/commit/cb0194b9873cfec2472a93ccd7542edd9d4a9a91) \u2014 ci: skip heavy workflows for documentation-only changes (#25)\n- [1d21d3d67cec](https://github.com/open-ott-play/ottplay-swop/commit/1d21d3d67cece396ec3739754e4fd54268575ce9) \u2014 docs: remove research reports and comparison history (#26)\n- [da9a2244e27a](https://github.com/open-ott-play/ottplay-swop/commit/da9a2244e27a2fd97d3a133c4caedb5df2e6848f) \u2014 perf(swop): overlap bounded client metadata reads (#27)\n- [ef5e9deb7b2c](https://github.com/open-ott-play/ottplay-swop/commit/ef5e9deb7b2ca8b75c25516e3039b9c4226cdadc) \u2014 feat(swop): authorize installations and atomically consume sessions (#28)\n- [97ca3b63864b](https://github.com/open-ott-play/ottplay-swop/commit/97ca3b63864b279b526d9b33526b6684d53db546) \u2014 feat(swop): add protected manual TV code entry (#29)\n- [4293d8e6e79a](https://github.com/open-ott-play/ottplay-swop/commit/4293d8e6e79a4e2a6010e1d524fb4a941644db26) \u2014 fix(terraform): bootstrap Durable Object migrations only once (#30)\n- [628481c9def6](https://github.com/open-ott-play/ottplay-swop/commit/628481c9def65973d723d9e94cfe29402318a4ad) \u2014 test: preserve installation session authorization across restart (#31)\n- [0e8fa3945d9c](https://github.com/open-ott-play/ottplay-swop/commit/0e8fa3945d9ca165f6fcfce107b9f7f1be192fa4) \u2014 feat: provide an authenticated VPortal catalog relay for hosted players (#32)\n- [36252202e070](https://github.com/open-ott-play/ottplay-swop/commit/36252202e0701734185662b5e1edb59d0918ecf1) \u2014 Allow opt-in adoption of an existing Worker custom domain\n- [8ab410005ad4](https://github.com/open-ott-play/ottplay-swop/commit/8ab410005ad41379f82bd7bdbd0e2fc621972f21) \u2014 Merge pull request #33 from open-ott-play/codex/adopt-existing-swop-domain\n- [9dfe34155edd](https://github.com/open-ott-play/ottplay-swop/commit/9dfe34155eddf3c22ca0f785e83b7775f95ed7ec) \u2014 fix(dev): use patched sharp in legacy Miniflare dependency\n- [97fcd26c2fb0](https://github.com/open-ott-play/ottplay-swop/commit/97fcd26c2fb0c416e5764d7e740c1349e2abd436) \u2014 Merge pull request #34 from open-ott-play/codex/swop-miniflare-sharp-security-20260928\n- [ccb2163aaf78](https://github.com/open-ott-play/ottplay-swop/commit/ccb2163aaf7860f431f34e78342b1be2ab1628d7) \u2014 Preserve JSON-escaped SWOP text limits (#35)\n- [7e611faa8b40](https://github.com/open-ott-play/ottplay-swop/commit/7e611faa8b4014574e88fa08d25a561ffcde4d79) \u2014 fix(swop): enforce request admission before body reads (#36)\n- [02fce75aea8f](https://github.com/open-ott-play/ottplay-swop/commit/02fce75aea8fcd8a120a5c841b232f955b7e3cce) \u2014 chore(ci): request CodeRabbit reviews for new public PRs (#38)\n- [05bc52ebf20f](https://github.com/open-ott-play/ottplay-swop/commit/05bc52ebf20f980b9be8b7224856c713e54d8b9a) \u2014 docs: clarify the toolkit installer working directory (#37)\n- [812b55fab9d9](https://github.com/open-ott-play/ottplay-swop/commit/812b55fab9d9d4895eb056cf539f1517f6c14ef2) \u2014 perf(auth): skip unused identity body parsing when headers suffice (#39)\n- [010b998587a8](https://github.com/open-ott-play/ottplay-swop/commit/010b998587a831ed9f1028828d0c7b559a24f118) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions (#40)\n- [37a83328db59](https://github.com/open-ott-play/ottplay-swop/commit/37a83328db59adfe31c75742d79082fe4f128d78) \u2014 ci: request CodeRabbit autofix after completed reviews (#52)\n- [f00b3330e1f2](https://github.com/open-ott-play/ottplay-swop/commit/f00b3330e1f2d4cd95154f01d303ca06947325ed) \u2014 fix: update vulnerable worker tools and document security boundaries (#53)\n- [e42363651639](https://github.com/open-ott-play/ottplay-swop/commit/e4236365163910a4a7225ce50d65d854f75cbe3e) \u2014 build: verify locked Python dependency archives (#55)\n- [669323fb8d56](https://github.com/open-ott-play/ottplay-swop/commit/669323fb8d565e8ec2f810c0282a59e441c413e4) \u2014 Validate source-bound release notes and broaden security analysis (#54)\n- [5c2668b460d9](https://github.com/open-ott-play/ottplay-swop/commit/5c2668b460d92d97a2d0c7c776232430b4a30b31) \u2014 fix: preserve quoted TOML assignment keys during version updates (#56)\n- [7be61d455f62](https://github.com/open-ott-play/ottplay-swop/commit/7be61d455f622602b4aa2ce26a44e6353a352738) \u2014 fix: handle closing hashes in release note headings (#57)\n- [5a982491782b](https://github.com/open-ott-play/ottplay-swop/commit/5a982491782bfd98a09f668cdaae541cab7c6894) \u2014 Update and validate the Worker toolchain with coordinated CI (#48)\n- [8402cda40b4f](https://github.com/open-ott-play/ottplay-swop/commit/8402cda40b4fe30e282ae3cad97c1a3d91164c10) \u2014 build(deps-dev): bump @cloudflare/workers-types\n- [56dd6f3c2400](https://github.com/open-ott-play/ottplay-swop/commit/56dd6f3c2400d088444d476a868094d94b24eb65) \u2014 build(deps-dev): bump wrangler from 4.147.0 to 4.149.0\n- [221dfb4bff85](https://github.com/open-ott-play/ottplay-swop/commit/221dfb4bff8563c9d1e4ecd4fa0c6c82c32efe0d) \u2014 Update Wrangler and its compatible Worker types together\n- [d06686ba984b](https://github.com/open-ott-play/ottplay-swop/commit/d06686ba984b8b5db5cf8dfe4aa7b01277651477) \u2014 build(deps): bump the codeql group with 4 updates\n- [4eb9d2b4073c](https://github.com/open-ott-play/ottplay-swop/commit/4eb9d2b4073cff4f0716bfb674ee5f85783b4cdb) \u2014 build(deps): bump actions/download-artifact from 8.0.1 to 8.0.2\n- [3a055ecf4f70](https://github.com/open-ott-play/ottplay-swop/commit/3a055ecf4f70f7ead606dffc3dfef1c3e21649e8) \u2014 build(deps): bump actions/setup-node from 7.0.0 to 7.1.0\n- [c011d7eea755](https://github.com/open-ott-play/ottplay-swop/commit/c011d7eea755e4aebb8804e4a8c3d525d7a8750f) \u2014 build(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.1\n- [34d74ae4a897](https://github.com/open-ott-play/ottplay-swop/commit/34d74ae4a8979339c71acdd78891614453b76026) \u2014 Merge pull request #58 from open-ott-play/dependabot/npm_and_yarn/cloudflare/workers-types-5.20261009.1\n- [83e359b3a087](https://github.com/open-ott-play/ottplay-swop/commit/83e359b3a08704c8eedfe16465cee47c0eb1d7e1) \u2014 Merge remote-tracking branch 'origin/main' into review-60\n- [c88ff948cd5f](https://github.com/open-ott-play/ottplay-swop/commit/c88ff948cd5f3ee0611244c7725c17574f1ec6d7) \u2014 Merge branches 'review-62', 'review-63' and 'review-64' into review-60\n- [f31afbb89222](https://github.com/open-ott-play/ottplay-swop/commit/f31afbb89222b87844d671720418a93a6eed9a28) \u2014 Align workflow runtimes and ARM64 runner hardening\n- [1a4c26c085cd](https://github.com/open-ott-play/ottplay-swop/commit/1a4c26c085cdc128e9747c631e44a38e84e5bd1b) \u2014 Use the matching patched artifact upload client\n- [693aa530b5af](https://github.com/open-ott-play/ottplay-swop/commit/693aa530b5afff624b18272ecf2f3917c321ea8f) \u2014 Merge pull request #60 from open-ott-play/dependabot/github_actions/codeql-b3a0f9381a\n- [f8419f45f3d8](https://github.com/open-ott-play/ottplay-swop/commit/f8419f45f3d8948ea0275c2485d0910879db7991) \u2014 Fuzz public RC installation authorization and wire contracts (#65)\n- [c48c1dc869df](https://github.com/open-ott-play/ottplay-swop/commit/c48c1dc869df3c4d7f802edc6fc8f983ed9a6523) \u2014 Verify disabled portal relay and document OpenSSF security profile (#66)\n\n\n\n\n\n---\n\n## open-ott-play/ottplay-control-server \u2014 v0.1.1\n\n[Published stable release](https://github.com/open-ott-play/ottplay-control-server/releases/tag/v0.1.1)\n\n## Changes in 0.1.1\n\n### Changes\n\n- Add bounded native Go fuzz qualification for public release candidates, with\n  source-bound evidence, synthetic seeds and documented reproduction. PRs, betas\n  and nightlies retain ordinary tests without mutation campaigns.\n\n- Add `stop` / `start` aliases for acknowledged standby / wake. Status shows\n  these controls when supported and distinguishes full-player `restart` from\n  `restart stream`, including explicit and short aliases. Stop keeps remote\n  control online; start follows the player's startup settings. Kiosk/settings\n  restrictions and uncertain-response handling are unchanged.\n\n- Show provider selection in the status command's available controls, including\n  `provider m3u` / `prov m3u` and provider listing. M3U and VPortal status also\n  show numbered profile commands, including when the catalog has no channels.\n  Kiosk status explains blocked switching while preserving read-only listings.\n  These hints add no remote requests and preserve player policy checks.\n\n- Add `fav add [NAME]`, `fav`, `fav play ID_OR_NAME` and `fav remove ID_OR_NAME`\n  with long favorite/favourite aliases. The target player captures its current\n  item and profile, stores a durable reference and restores that profile before\n  resolving playback. The controller validates bounded, runtime-bound metadata;\n  the CLI requires the optional `favorites` capability and never repeats an\n  uncertain request. Existing provider, kiosk and parental checks still apply.\n\n- Add `plex libraries`, `plex library [--shuffle] [--preview] NAME` and\n  `plex shuffle NAME`. The player resolves a complete movie/show library using\n  its own saved Plex connection, then reuses the existing queue. Explicit\n  `id:NUMBER` selection avoids ambiguous names. Capability checks, bounded\n  results and runtime-bound errors preserve older queue commands and prevent\n  partial or automatically repeated playback requests.\n\n- Explain when `restart stream` has no current stream to restart, including\n  responses from older players. Keep unsupported-player errors distinct, omit\n  arbitrary player error text, and never retry or reload automatically.\n\n- Add read-only `debug`/`dbg` player snapshots with bounded runtime, media,\n  lifecycle and native metrics, using a separate capability compatible with\n  existing inspection clients. Bundles retain two files and verify debug\n  observations under `workbench-v3`; legacy reports remain verifiable.\n- Add administrator-only `GET /api/debug` and `ott server debug` for independently\n  sampled process, stored queue/result and diagnostics-service counters. Reads\n  do not expire queued state or expose device IDs and payloads.\n\n- Update strict-kiosk help and examples for local timeline seeking within a\n  VPortal/Plex episode on supported players; older players keep a read-only footer.\n\n- Add explicit `aspect` readback and `aspect fit|fill` controls, including the\n  full names `Fit to screen` and `Fill screen`. The CLI checks support before\n  sending runtime-bound requests and reports saved-setting readback;\n  Fill preserves proportions and crops the edges. The existing `key aspect`\n  input remains separate. Changes execute only after acknowledgement and\n  remain subject to player kiosk, PIN and protected-input restrictions.\n\n- Android native diagnostics now expose shared web media identity when available,\n  native runtime/OS boot markers, and bounded app-surface/audio evidence.\n  A private 64-entry, 24-hour operation history survives reloads and agent\n  restarts; `android operation ID` reads receipts without replaying effects.\n  Physical display/audio and successful recovery are not inferred from counters\n  or handler completion. Existing separate native binding and V1 requests remain.\n\n- Direct HTTPS validates all supplied certificate keys before listening and\n  serves the checked key pair without reloading it from disk.\n- The 0.1.1 development line adds bounded remote screenshot requests, strict\n  kiosk controls, shared playlist/EPG resolution and ordered Plex queues with\n  a read-only preview. The separate Android maintenance agent supports native\n  maintenance operations, including KitKat devices.\n- Add `doctor`, `inspect`, `operation`, private evidence bundles and fixed\n  `health`/`media-progress` scenarios. Optional JSON request receipts expose the\n  request ID without changing ordinary command output. Inspection validates\n  runtime, section and operation binding; progress checks reject incompatible\n  identities and invalid capture-clock observations.\n- Release publication now reads this version's reviewed notes from the exact\n  source commit and verifies them before writing publication evidence or\n  advancing the durable publication counter.\n\n- Version updates preserve quoted TOML keys containing `=` or `#`, including\n  unrelated keys, without changing comments or surrounding file layout.\n\n- Release notes accept optional closing hashes in Markdown headings while\n  continuing to reject duplicate version sections.\n\n- The localhost HTTPS diagnostics test fixture explicitly requires TLS 1.2 or\n  newer while retaining certificate and redirect validation coverage.\n\n### Upgrade\n\nCurrent-item favorites require a matching CLI, controller and player advertising\n`favorites`. Entries remain in the target player's persistent storage and are\nnot transferred by a controller upgrade or shared between device installations.\n\nPlex library commands require a CLI, controller and player implementing the new\n`plex_library` capability. Existing `plex_queue` support alone is insufficient;\nan unsupported player receives no library command. Local presets and saved\ncredentials are unchanged. Existing parental, kiosk and repeat policies apply.\n\nAspect commands require a matching updated CLI, controller and player. An older\nplayer without the capability receives no aspect mutation. The player's existing\nstorage scope remains authoritative: the current live channel, or the shared\nmedia setting for VOD. Read `aspect` after a change; an accepted request does not\nby itself confirm application or persistent storage.\n\nIf using `--tls-cert` and `--tls-key`, replace any certificate chain containing\nRSA keys below 2048 bits or ECDSA keys below 224 bits before upgrading. Ed25519 is\nalso supported; other key types are rejected. A reverse proxy still needs its\nown TLS policy.\n\nRetain server configuration, private CLI presets and pairing credentials. Update\nthe player alongside the controller when adopting new remote commands; capability\nchecks still determine which commands a device supports. Queues remain ephemeral\nand single-replica. Test the chosen binary/container and target player before\nreplacing a running installation; this change does not deploy it.\n\nKeep all seven CLI Python files from the same revision together. The workbench\ncommands are not part of stable CLI v0.1.0 and require a player advertising the\ncorresponding inspection capabilities. Separately bound Android maintenance\nobservations remain a distinct lane. Evidence exports require a new directory;\nkeep previous exports and choose another location after an incomplete export.\n\n### Security\n\nGo healthcheck and Android maintenance-agent HTTPS requests now reject\nundersized keys throughout verified peer chains, including the trust anchor,\nbefore sending an HTTP request. Existing trust and hostname checks still apply,\nand resumed connections receive the same key check. Replace affected controller,\nreverse-proxy or CA certificates before upgrading these clients.\n\nThe direct HTTPS listener now rejects undersized keys in the supplied leaf,\nintermediate and included root certificates before accepting connections.\nClient certificate verification and HTTP-client trust policies are unchanged.\n\nKeep the controller behind the documented HTTPS/authentication boundary and treat\nscreenshots, diagnostic responses and saved provider tokens as private data.\nConfidential vulnerability reporting is documented in SECURITY.md. This release\ntooling update rejects missing or incomplete notes before publication state changes;\nit does not announce a new application CVE.\n\nInspection and scenarios do not repair, start playback or capture a screen.\nExisting credentials and device policy remain authoritative. Exported observations\nexclude credentials, provider URLs, screenshots and raw exceptions; POSIX exports\nuse private directory/file permissions. Missing replies remain unknown and are\nnot automatically retried as mutations. Neither a request receipt nor advancing\ndecoder time proves physical presentation.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.1-rc.1](https://github.com/open-ott-play/ottplay-control-server/releases/tag/v0.1.1-rc.1).\n\nSource: `b12fe5da7ce32eed6d59f31277500bfd48eb9aa5`\n\nValidation: https://github.com/open-ott-play/ottplay-control-server/actions/runs/38487666304\n\nPromotion: https://github.com/open-ott-play/ottplay-control-server/actions/runs/38510921824\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete changes since v0.1.0\n\nReleased source: [b12fe5da7ce3](https://github.com/open-ott-play/ottplay-control-server/commit/b12fe5da7ce32eed6d59f31277500bfd48eb9aa5).\nPrevious stable source: [92a3fd2969b0](https://github.com/open-ott-play/ottplay-control-server/commit/92a3fd2969b0b385765f2ba2e4848bc2cbd4ba60).\n\n[Full source history](https://github.com/open-ott-play/ottplay-control-server/compare/92a3fd2969b0b385765f2ba2e4848bc2cbd4ba60...b12fe5da7ce32eed6d59f31277500bfd48eb9aa5). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 41 merged pull requests\n\n- [#60](https://github.com/open-ott-play/ottplay-control-server/pull/60) \u2014 Document stable CLI installation and record RC acceptance\n- [#61](https://github.com/open-ott-play/ottplay-control-server/pull/61) \u2014 Add bounded remote screenshots to the controller and CLI\n- [#62](https://github.com/open-ott-play/ottplay-control-server/pull/62) \u2014 chore: prepare release 0.1.1\n- [#64](https://github.com/open-ott-play/ottplay-control-server/pull/64) \u2014 Align remote support guidance with connection-based authorization\n- [#63](https://github.com/open-ott-play/ottplay-control-server/pull/63) \u2014 feat: expose strict kiosk mode through remote CLI\n- [#49](https://github.com/open-ott-play/ottplay-control-server/pull/49) \u2014 Update GitHub Actions and reusable workflows\n- [#52](https://github.com/open-ott-play/ottplay-control-server/pull/52) \u2014 Share playlist and EPG resolution with local launchers\n- [#65](https://github.com/open-ott-play/ottplay-control-server/pull/65) \u2014 perf(control): allocate only the active poll delivery buffers\n- [#66](https://github.com/open-ott-play/ottplay-control-server/pull/66) \u2014 feat(control): add ordered Plex queues and read-only preview\n- [#67](https://github.com/open-ott-play/ottplay-control-server/pull/67) \u2014 fix(cli): make remote diagnostics work through the production proxy\n- [#69](https://github.com/open-ott-play/ottplay-control-server/pull/69) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions\n- [#70](https://github.com/open-ott-play/ottplay-control-server/pull/70) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#71](https://github.com/open-ott-play/ottplay-control-server/pull/71) \u2014 feat: independent Android maintenance agent and OTT CLI\n- [#72](https://github.com/open-ott-play/ottplay-control-server/pull/72) \u2014 Fix native maintenance on Android KitKat\n- [#73](https://github.com/open-ott-play/ottplay-control-server/pull/73) \u2014 docs: document security boundaries and OpenSSF evidence\n- [#74](https://github.com/open-ott-play/ottplay-control-server/pull/74) \u2014 Add remote diagnostic workbench and correlated request receipts\n- [#76](https://github.com/open-ott-play/ottplay-control-server/pull/76) \u2014 build: verify the workflow parser archive in standalone CI\n- [#77](https://github.com/open-ott-play/ottplay-control-server/pull/77) \u2014 docs: clarify operation receipt evidence and expiry\n- [#75](https://github.com/open-ott-play/ottplay-control-server/pull/75) \u2014 Validate source-bound release notes and broaden security analysis\n- [#78](https://github.com/open-ott-play/ottplay-control-server/pull/78) \u2014 Correct release note headings and pin the test TLS minimum\n- [#79](https://github.com/open-ott-play/ottplay-control-server/pull/79) \u2014 ci: narrow declared token permissions to required jobs\n- [#80](https://github.com/open-ott-play/ottplay-control-server/pull/80) \u2014 Reject undersized HTTPS certificate keys before listening\n- [#81](https://github.com/open-ott-play/ottplay-control-server/pull/81) \u2014 Reject weak verified peer keys before outbound HTTPS requests\n- [#82](https://github.com/open-ott-play/ottplay-control-server/pull/82) \u2014 docs: define the verified Python CLI TLS profile\n- [#83](https://github.com/open-ott-play/ottplay-control-server/pull/83) \u2014 Add native media evidence and durable operation receipts\n- [#84](https://github.com/open-ott-play/ottplay-control-server/pull/84) \u2014 Validate native diagnostics and verify saved reports offline\n- [#85](https://github.com/open-ott-play/ottplay-control-server/pull/85) \u2014 docs: document pinned CLI installation and diagnostic workflows\n- [#86](https://github.com/open-ott-play/ottplay-control-server/pull/86) \u2014 Add staged Capacitor APK updates through OTT\n- [#87](https://github.com/open-ott-play/ottplay-control-server/pull/87) \u2014 Support large shuffled Plex queues and media kiosk status\n- [#88](https://github.com/open-ott-play/ottplay-control-server/pull/88) \u2014 feat: add explicit remote aspect ratio controls\n- [#89](https://github.com/open-ott-play/ottplay-control-server/pull/89) \u2014 docs: clarify strict kiosk timeline seeking\n- [#90](https://github.com/open-ott-play/ottplay-control-server/pull/90) \u2014 feat: add runtime and controller debug snapshots\n- [#91](https://github.com/open-ott-play/ottplay-control-server/pull/91) \u2014 fix(cli): explain temporarily unavailable stream restarts\n- [#92](https://github.com/open-ott-play/ottplay-control-server/pull/92) \u2014 feat: play Plex libraries by name with shuffle\n- [#93](https://github.com/open-ott-play/ottplay-control-server/pull/93) \u2014 docs: explain Plex library response timeouts\n- [#68](https://github.com/open-ott-play/ottplay-control-server/pull/68) \u2014 chore(deps): update github actions and reusable workflows\n- [#94](https://github.com/open-ott-play/ottplay-control-server/pull/94) \u2014 feat: save and play current-item favorites across profiles\n- [#95](https://github.com/open-ott-play/ottplay-control-server/pull/95) \u2014 feat(cli): expose provider, restart and stop controls in player status\n- [#96](https://github.com/open-ott-play/ottplay-control-server/pull/96) \u2014 docs: complete kiosk API and remote queue guidance\n- [#97](https://github.com/open-ott-play/ottplay-control-server/pull/97) \u2014 chore(deps): update github actions and reusable workflows\n- [#98](https://github.com/open-ott-play/ottplay-control-server/pull/98) \u2014 Qualify control-server RCs with native parser fuzzing\n\n\n\n\n\nAll 47 commits\n\n- [21aeb431f694](https://github.com/open-ott-play/ottplay-control-server/commit/21aeb431f694402387148e33b394d58a73eca698) \u2014 Document stable CLI installation and player requirements (#60)\n- [3ea424b2a8e3](https://github.com/open-ott-play/ottplay-control-server/commit/3ea424b2a8e37cb6bd45dd5395bc48911173b24f) \u2014 Add bounded remote screenshots to the controller and CLI (#61)\n- [5e022e6f1d75](https://github.com/open-ott-play/ottplay-control-server/commit/5e022e6f1d75c16593d209b9a15745e562f10a6b) \u2014 chore: prepare release 0.1.1 (#62)\n- [bb68aaacb8f0](https://github.com/open-ott-play/ottplay-control-server/commit/bb68aaacb8f01692a459fc0726cefd52c2ecf55d) \u2014 feat: expose strict kiosk mode through remote CLI\n- [17d72f148c46](https://github.com/open-ott-play/ottplay-control-server/commit/17d72f148c46a6e4986be1c9301566a48c07762a) \u2014 Align remote support guidance with connection authorization (#64)\n- [2a78e1a9e6e3](https://github.com/open-ott-play/ottplay-control-server/commit/2a78e1a9e6e3bdc2a9e8d5fbd9b42b5232ea5653) \u2014 Merge remote-tracking branch 'origin/main' into feat/strict-kiosk-20261006\n- [95477c1e10c8](https://github.com/open-ott-play/ottplay-control-server/commit/95477c1e10c81cbbd6c28466f4db96b5c87b2363) \u2014 test: enforce strict kiosk confirmation through CLI dispatch\n- [58c4d9a74e34](https://github.com/open-ott-play/ottplay-control-server/commit/58c4d9a74e341e6bfe5ba6ce41692c22985de0e8) \u2014 Merge pull request #63 from open-ott-play/feat/strict-kiosk-20261006\n- [c98c2ee26731](https://github.com/open-ott-play/ottplay-control-server/commit/c98c2ee2673185a87e7827635fae6f7783c5bf0a) \u2014 Update GitHub Actions and reusable workflows (#49)\n- [afde09573e9b](https://github.com/open-ott-play/ottplay-control-server/commit/afde09573e9b8f7fa027358c5e61507d12567dca) \u2014 Share playlist and EPG resolution with local launchers (#52)\n- [0bc8e7acf8c4](https://github.com/open-ott-play/ottplay-control-server/commit/0bc8e7acf8c4bad35ca77c764cd12fd650d14ef8) \u2014 perf(control): allocate only the active poll delivery buffers (#65)\n- [3a8d4fe54976](https://github.com/open-ott-play/ottplay-control-server/commit/3a8d4fe549767fa48b7a330ac8be225336522a19) \u2014 feat(control): add ordered Plex queues and read-only preview (#66)\n- [5f428f31e095](https://github.com/open-ott-play/ottplay-control-server/commit/5f428f31e09568378330534b8c7e590c46bb373b) \u2014 fix(cli): use consistent user agent for remote diagnostics (#67)\n- [f4da551cfc5d](https://github.com/open-ott-play/ottplay-control-server/commit/f4da551cfc5da520be4a7742c9a6868d6364174d) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions (#69)\n- [a64542e0f5b4](https://github.com/open-ott-play/ottplay-control-server/commit/a64542e0f5b482fd1c2f8110913d5294f8a5dc62) \u2014 ci: request CodeRabbit autofix after completed reviews (#70)\n- [d05fa6510170](https://github.com/open-ott-play/ottplay-control-server/commit/d05fa65101703b17afabf2c49e0499105fadbe97) \u2014 feat: independent Android maintenance agent and OTT CLI (#71)\n- [86b87b211f91](https://github.com/open-ott-play/ottplay-control-server/commit/86b87b211f910e90a6fa3bd55f7d82df2b17a1fe) \u2014 Fix native maintenance on Android KitKat (#72)\n- [2ec30e4a0df7](https://github.com/open-ott-play/ottplay-control-server/commit/2ec30e4a0df74e8499edcea6bd3180dbabcfcd04) \u2014 docs: document security boundaries and OpenSSF evidence (#73)\n- [c5983963502e](https://github.com/open-ott-play/ottplay-control-server/commit/c5983963502ed1f2842fe4edc2f97c8002b13e88) \u2014 Add remote diagnostic workbench and correlated request receipts (#74)\n- [c4f07cbb5a60](https://github.com/open-ott-play/ottplay-control-server/commit/c4f07cbb5a608b4b64d2631dd79abd5293030f4b) \u2014 build: verify workflow parser package hashes (#76)\n- [f99e292713b3](https://github.com/open-ott-play/ottplay-control-server/commit/f99e292713b3149428ba8c32c7debd1ef1ecea78) \u2014 docs: clarify operation receipt evidence and expiry (#77)\n- [598d32a15541](https://github.com/open-ott-play/ottplay-control-server/commit/598d32a155417ca79d79fc9ae712fe437ce94b9c) \u2014 Validate source-bound release notes and broaden security analysis (#75)\n- [958f7ee25c6f](https://github.com/open-ott-play/ottplay-control-server/commit/958f7ee25c6f533ee048facb5b15a378dae3341f) \u2014 Correct release note headings and pin the test TLS minimum (#78)\n- [f042c536c473](https://github.com/open-ott-play/ottplay-control-server/commit/f042c536c4736aa511e363defe85ebeaca140029) \u2014 ci: narrow declared token permissions to required jobs (#79)\n- [ace9d75e7fa0](https://github.com/open-ott-play/ottplay-control-server/commit/ace9d75e7fa0dab92c769d22a985af5b109ebb8a) \u2014 Reject undersized HTTPS certificate keys before listening (#80)\n- [4536bc6b6a7f](https://github.com/open-ott-play/ottplay-control-server/commit/4536bc6b6a7f4645dbc34f8ab8ed54e58b258561) \u2014 Reject weak verified peer keys before outbound HTTPS requests (#81)\n- [e9f7a309b44b](https://github.com/open-ott-play/ottplay-control-server/commit/e9f7a309b44b9b796fd93dd773fd1c2df3fd6706) \u2014 docs: define the verified Python CLI TLS profile (#82)\n- [a23be7d51102](https://github.com/open-ott-play/ottplay-control-server/commit/a23be7d511020f08ba167905d87c46a05f5d8de3) \u2014 Add native media evidence and durable operation receipts (#83)\n- [c1758f37a829](https://github.com/open-ott-play/ottplay-control-server/commit/c1758f37a829f72b63ae50a979141a96871981d3) \u2014 Validate native diagnostics and verify saved reports offline (#84)\n- [7063f9eafac6](https://github.com/open-ott-play/ottplay-control-server/commit/7063f9eafac6ab87b45902ea1eb5b49d8edcab87) \u2014 docs: document pinned CLI installation and diagnostic workflows (#85)\n- [94f77742c02c](https://github.com/open-ott-play/ottplay-control-server/commit/94f77742c02c502ee6801534e91e1e732cbf669f) \u2014 Add staged Capacitor APK updates through OTT (#86)\n- [7caf6763e1ef](https://github.com/open-ott-play/ottplay-control-server/commit/7caf6763e1ef134480f2804a7e8af69b992fe10c) \u2014 Support larger shuffled Plex queues and Plex kiosk status\n- [9566542c7e9b](https://github.com/open-ott-play/ottplay-control-server/commit/9566542c7e9b610f8fec33bb46e9db8fa1ff496d) \u2014 Merge pull request #87 from open-ott-play/feat/plex-kiosk-queue-20261008\n- [19cf5029fe1a](https://github.com/open-ott-play/ottplay-control-server/commit/19cf5029fe1a0427d2a16beaa16003d4efff37e3) \u2014 feat: add explicit remote aspect ratio controls (#88)\n- [ac00d606e330](https://github.com/open-ott-play/ottplay-control-server/commit/ac00d606e330d046b9c61c9fd88aab51cdcd519d) \u2014 docs: clarify strict kiosk timeline seeking (#89)\n- [bd5d42282fea](https://github.com/open-ott-play/ottplay-control-server/commit/bd5d42282feabe632665b698cc41b6f75909faca) \u2014 feat: add bounded runtime and controller debug snapshots (#90)\n- [1978c04feb98](https://github.com/open-ott-play/ottplay-control-server/commit/1978c04feb98155f6fb65dbaac4287c1f844f1fc) \u2014 fix(cli): explain temporarily unavailable stream restarts (#91)\n- [a3cfd01ce35e](https://github.com/open-ott-play/ottplay-control-server/commit/a3cfd01ce35e062af0f293af82582e3fab497221) \u2014 feat: play Plex libraries by name with shuffle (#92)\n- [f02e561c4bd5](https://github.com/open-ott-play/ottplay-control-server/commit/f02e561c4bd56d6018a1f53c426d83efa76d7dee) \u2014 docs: explain Plex library response timeouts (#93)\n- [f5a0e8e20311](https://github.com/open-ott-play/ottplay-control-server/commit/f5a0e8e20311315dc38ea01dbbe980ac567ab264) \u2014 chore(deps): update github actions and reusable workflows (#68)\n- [d8188b24d615](https://github.com/open-ott-play/ottplay-control-server/commit/d8188b24d615db6e8132f28da69d82b315c6ba36) \u2014 feat: control persistent current-item favorites across profiles\n- [e1a865783407](https://github.com/open-ott-play/ottplay-control-server/commit/e1a865783407391662c1f5d083bb8236e3f2e0ac) \u2014 docs: pin CLI installation to favorites-capable source\n- [a6e219889f3d](https://github.com/open-ott-play/ottplay-control-server/commit/a6e219889f3d2f940dc088415172a28cc7c817c4) \u2014 Merge pull request #94 from open-ott-play/feat/remote-current-favorites-20261012\n- [c18e1d090eaf](https://github.com/open-ott-play/ottplay-control-server/commit/c18e1d090eaff2f9f0675ace68ec554ce15aec00) \u2014 feat(cli): expose provider, restart and stop controls in player status (#95)\n- [4a7f5ee956f9](https://github.com/open-ott-play/ottplay-control-server/commit/4a7f5ee956f9131e868de9b7ab776cb535dddafa) \u2014 docs: complete kiosk API and remote queue guidance (#96)\n- [012ad305e56e](https://github.com/open-ott-play/ottplay-control-server/commit/012ad305e56e2ffda909a1935c5797e7087c0645) \u2014 chore(deps): update github actions and reusable workflows (#97)\n- [b12fe5da7ce3](https://github.com/open-ott-play/ottplay-control-server/commit/b12fe5da7ce32eed6d59f31277500bfd48eb9aa5) \u2014 Qualify control-server RCs with native parser fuzzing (#98)\n\n\n\n\n\n---\n\n## open-ott-play/ottplay-core \u2014 v0.1.0\n\n[Published stable release](https://github.com/open-ott-play/ottplay-core/releases/tag/v0.1.0)\n\n## Changes in 0.1.0\n\n- Publish the existing compiled JVM17 JAR, ES5 JavaScript, declarations, source\n  manifest and original license notices through the shared beta/RC pipeline.\n- Add bounded offline RC fuzzing of the actual Kotlin playlist parser and guide\n  timeline exports, with retained corpus, mutation logs and release evidence.\n- Preserve input order when programme start times compare equal, including\n  negative and positive zero, so requesting one or several future programmes\n  returns a consistent prefix. Add the discovered input as a regression seed\n  and test the common fix on both JVM and JavaScript.\n- Qualify release candidates with the existing portable, browser-consumer and\n  wire checks without invoking consumer delivery.\n\n### Upgrade\n\nThis is the first `v0.1.0-*` release line for the compiled shared-core package;\nFOSS2 retains its independent `foss2-*` version and release process. No consumer\nrepository or running application is updated by publishing these files.\nSelect a candidate explicitly and keep its JVM/ES5 files, declarations,\nlicense notices and manifest together. Review the consuming application's\ncompatibility checks before integrating it. For a local reproduction, use the\nexact source commit and synchronize its frozen version plan as described in\n`docs/CORE-RELEASING.md` in that source checkout.\n\n### Security\n\nThe new offline RC campaigns exercise malformed playlist data and guide timing\nboundaries in the actual compiled core. The equal-time ordering correction is\na consistency fix; it does not change authentication, network access or provider\nURL policy. Keep the consuming application's input and access controls enabled;\nthis package does not perform a device deployment or establish device acceptance.\n\n## Build provenance\n\nPromoted unchanged from [v0.1.0-rc.2](https://github.com/open-ott-play/ottplay-core/releases/tag/v0.1.0-rc.2).\n\nSource: `06e811fca351a9fcbd0cebf6a5f112c8fadde892`\n\nValidation: https://github.com/open-ott-play/ottplay-core/actions/runs/38510925518\n\nPromotion: https://github.com/open-ott-play/ottplay-core/actions/runs/38511713990\n\nAssets and `release-manifest.json` are byte-for-byte copies of the verified release candidate.\n\n\n## Complete history for the initial stable release\n\nReleased source: [06e811fca351](https://github.com/open-ott-play/ottplay-core/commit/06e811fca351a9fcbd0cebf6a5f112c8fadde892).\n\n[Full source history](https://github.com/open-ott-play/ottplay-core/commits/06e811fca351a9fcbd0cebf6a5f112c8fadde892). The list includes application, dependency, CI, documentation and release changes.\n\n\n\nAll 54 merged pull requests\n\n- [#1](https://github.com/open-ott-play/ottplay-core/pull/1) \u2014 Support flat sibling consumer checkouts\n- [#2](https://github.com/open-ott-play/ottplay-core/pull/2) \u2014 Document the ottplay-core repository name\n- [#3](https://github.com/open-ott-play/ottplay-core/pull/3) \u2014 ci: classify documentation changes before heavy validation\n- [#4](https://github.com/open-ott-play/ottplay-core/pull/4) \u2014 Add typed playback sessions and seek planning\n- [#5](https://github.com/open-ott-play/ottplay-core/pull/5) \u2014 Reduce Actions storage and cancel superseded core checks\n- [#6](https://github.com/open-ott-play/ottplay-core/pull/6) \u2014 Add stable channel and media collection identities\n- [#7](https://github.com/open-ott-play/ottplay-core/pull/7) \u2014 Use provider references for combined operator channel catalogs\n- [#8](https://github.com/open-ott-play/ottplay-core/pull/8) \u2014 Expose scoped programme identities and guide timeline selection\n- [#9](https://github.com/open-ott-play/ottplay-core/pull/9) \u2014 Preserve original channel references for bookmark migration\n- [#10](https://github.com/open-ott-play/ottplay-core/pull/10) \u2014 Fix quoted playlist labels and blank URI lines\n- [#11](https://github.com/open-ott-play/ottplay-core/pull/11) \u2014 ci: deliver qualified shared core artifacts to consumers\n- [#12](https://github.com/open-ott-play/ottplay-core/pull/12) \u2014 ci: reference the merged vendor delivery workflow\n- [#13](https://github.com/open-ott-play/ottplay-core/pull/13) \u2014 docs: remove research reports and comparison history\n- [#14](https://github.com/open-ott-play/ottplay-core/pull/14) \u2014 perf: shrink shared JavaScript and avoid repeated catalog work\n- [#15](https://github.com/open-ott-play/ottplay-core/pull/15) \u2014 perf: reduce ES5 core by 100 KB with private helper compaction\n- [#16](https://github.com/open-ott-play/ottplay-core/pull/16) \u2014 chore: update ottplay-shared-core\n- [#17](https://github.com/open-ott-play/ottplay-core/pull/17) \u2014 perf: avoid repeated guide sorting and decimal parsing work\n- [#18](https://github.com/open-ott-play/ottplay-core/pull/18) \u2014 chore: update ottplay-shared-core\n- [#19](https://github.com/open-ott-play/ottplay-core/pull/19) \u2014 ci: add opt-in k3s routing for trusted main builds\n- [#20](https://github.com/open-ott-play/ottplay-core/pull/20) \u2014 fix(stalker): load bulk catalogs and support browser HLS preference\n- [#22](https://github.com/open-ott-play/ottplay-core/pull/22) \u2014 test: pin release contracts and verify server-authorized SWOP\n- [#23](https://github.com/open-ott-play/ottplay-core/pull/23) \u2014 Speed up shared XMLTV timestamp decoding and encoding\n- [#24](https://github.com/open-ott-play/ottplay-core/pull/24) \u2014 perf(epg): avoid redundant native timestamp allocations\n- [#26](https://github.com/open-ott-play/ottplay-core/pull/26) \u2014 Define the guarded native Rust XMLTV compatibility exception\n- [#27](https://github.com/open-ott-play/ottplay-core/pull/27) \u2014 fix(epg): retain server guide when all sources fail\n- [#28](https://github.com/open-ott-play/ottplay-core/pull/28) \u2014 chore: update ottplay-shared-core\n- [#29](https://github.com/open-ott-play/ottplay-core/pull/29) \u2014 Adopt safe vendor-run qualification diagnostics\n- [#30](https://github.com/open-ott-play/ottplay-core/pull/30) \u2014 docs: record beta9 and SWOP PR36 compatibility scope\n- [#31](https://github.com/open-ott-play/ottplay-core/pull/31) \u2014 perf(core): index native EPG fuzzy match candidates\n- [#32](https://github.com/open-ott-play/ottplay-core/pull/32) \u2014 Avoid substring allocations when matching guide aliases\n- [#34](https://github.com/open-ott-play/ottplay-core/pull/34) \u2014 test(swop): restore beta18 contract checks and record compatibility\n- [#35](https://github.com/open-ott-play/ottplay-core/pull/35) \u2014 docs: record scoped beta18 physical iPhone acceptance\n- [#36](https://github.com/open-ott-play/ottplay-core/pull/36) \u2014 Fix native EPG choosing a regional channel for an exact base name\n- [#37](https://github.com/open-ott-play/ottplay-core/pull/37) \u2014 chore: update ottplay-shared-core\n- [#38](https://github.com/open-ott-play/ottplay-core/pull/38) \u2014 docs: record combined beta.5 compatibility evidence\n- [#39](https://github.com/open-ott-play/ottplay-core/pull/39) \u2014 perf(core): reduce eager EPG index construction allocations\n- [#41](https://github.com/open-ott-play/ottplay-core/pull/41) \u2014 perf(core): reduce eager guide index preprocessing\n- [#43](https://github.com/open-ott-play/ottplay-core/pull/43) \u2014 fix(core): preserve numeric hyphens in guide channel names\n- [#45](https://github.com/open-ott-play/ottplay-core/pull/45) \u2014 chore(ci): request CodeRabbit reviews for new public PRs\n- [#44](https://github.com/open-ott-play/ottplay-core/pull/44) \u2014 chore: update ottplay-shared-core\n- [#46](https://github.com/open-ott-play/ottplay-core/pull/46) \u2014 docs: link the independent core consumers\n- [#47](https://github.com/open-ott-play/ottplay-core/pull/47) \u2014 perf: short-circuit resolved guide channel lookups\n- [#48](https://github.com/open-ott-play/ottplay-core/pull/48) \u2014 chore: update ottplay-shared-core\n- [#49](https://github.com/open-ott-play/ottplay-core/pull/49) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions\n- [#61](https://github.com/open-ott-play/ottplay-core/pull/61) \u2014 ci: request CodeRabbit autofix after completed reviews\n- [#62](https://github.com/open-ott-play/ottplay-core/pull/62) \u2014 fix: constrain relay destinations and update vulnerable test tools\n- [#63](https://github.com/open-ott-play/ottplay-core/pull/63) \u2014 fix: reject weak upstream TLS keys in Node services\n- [#65](https://github.com/open-ott-play/ottplay-core/pull/65) \u2014 fix: enforce playlist and EPG size limits\n- [#66](https://github.com/open-ott-play/ottplay-core/pull/66) \u2014 chore: update ottplay-shared-core\n- [#60](https://github.com/open-ott-play/ottplay-core/pull/60) \u2014 Prepare browser beta 3 with coordinated and qualified dependencies\n- [#67](https://github.com/open-ott-play/ottplay-core/pull/67) \u2014 Qualify playback and build security patches for beta 4\n- [#73](https://github.com/open-ott-play/ottplay-core/pull/73) \u2014 Qualify compiled core release candidates with offline fuzzing\n- [#75](https://github.com/open-ott-play/ottplay-core/pull/75) \u2014 Fix current core release notes and verify them before publication\n- [#74](https://github.com/open-ott-play/ottplay-core/pull/74) \u2014 chore: update ottplay-shared-core\n\n\n\n\n\nAll 77 commits\n\n- [70916767127e](https://github.com/open-ott-play/ottplay-core/commit/70916767127e9315d36248f7a80f58dff0b8c255) \u2014 feat: establish canonical portable OttPlay core and ES5 client\n- [2b1873a8e007](https://github.com/open-ott-play/ottplay-core/commit/2b1873a8e00770810e7bdbb7e1e79c97aff049e7) \u2014 ci: retain compiler output when receipt comparison fails\n- [09c66f6cc9df](https://github.com/open-ott-play/ottplay-core/commit/09c66f6cc9df05c3e1f79c753f4b633ad3c977bf) \u2014 build: canonicalize empty Kotlin marker metadata for reproducible ES5\n- [a05ce53346c9](https://github.com/open-ott-play/ottplay-core/commit/a05ce53346c971ac57a26a54f80d6d8992d7fde6) \u2014 refactor: centralize native guide source and cache policies\n- [569897b3e97d](https://github.com/open-ott-play/ottplay-core/commit/569897b3e97def64f4ee91dd2afcd63f41643625) \u2014 build: pin main consumer after CI orchestration merge\n- [b34ae283bb59](https://github.com/open-ott-play/ottplay-core/commit/b34ae283bb59402c6d6807cd1af7539124af62df) \u2014 build: pin Android native UI synchronization fix\n- [0f1927ee1c29](https://github.com/open-ott-play/ottplay-core/commit/0f1927ee1c29bb88d56f988798a8c890a34bfd90) \u2014 refactor: centralize streaming guide retention and output budgets\n- [cba5bbfdce5d](https://github.com/open-ott-play/ottplay-core/commit/cba5bbfdce5d0660011fb56a7e09e03b817ed59d) \u2014 chore: pin consumer after release-version merge\n- [49ac94c923ea](https://github.com/open-ott-play/ottplay-core/commit/49ac94c923ea01d8c2d40a6c52acc832167ba021) \u2014 refactor: centralize native guide fallback and source batches\n- [4f912e73d2c9](https://github.com/open-ott-play/ottplay-core/commit/4f912e73d2c9c5969569a8febc2f747ad85b5918) \u2014 refactor: centralize native XMLTV record rules\n- [b2cd27f2a0ff](https://github.com/open-ott-play/ottplay-core/commit/b2cd27f2a0ffafc99a5c1ca2f2b9ac9134582cb2) \u2014 test: pin complete XMLTV test registration\n- [398a6113bb2e](https://github.com/open-ott-play/ottplay-core/commit/398a6113bb2e7f8a98e02638e4da99062f2a0fbb) \u2014 refactor: centralize guide refresh decisions across clients\n- [f429f537497e](https://github.com/open-ott-play/ottplay-core/commit/f429f537497ec95c2bf92781e1ecee86c18bbfe8) \u2014 fix: canonicalize mutable collection compiler metadata\n- [d76471b5f3dd](https://github.com/open-ott-play/ottplay-core/commit/d76471b5f3dde2b5657449aa1d4a384374d82ac5) \u2014 refactor: consolidate OttPlay domain policies in shared core\n- [1b9010e698e1](https://github.com/open-ott-play/ottplay-core/commit/1b9010e698e1189fa422b64c7ed903879448912b) \u2014 docs: record final cross-platform integration checks\n- [421325abc2de](https://github.com/open-ott-play/ottplay-core/commit/421325abc2deffe9d3d0d9de70eb5c480623887d) \u2014 release: prepare FOSS2 beta.2 with unified core\n- [1d0c3db809db](https://github.com/open-ott-play/ottplay-core/commit/1d0c3db809db45033abe0140ff94bdc363f90fb5) \u2014 Support flat sibling consumer checkouts (#1)\n- [bbba041a4bb5](https://github.com/open-ott-play/ottplay-core/commit/bbba041a4bb5a1090ebe9735294760b45be75dc4) \u2014 Document the ottplay-core repository name (#2)\n- [a024ede0b4e6](https://github.com/open-ott-play/ottplay-core/commit/a024ede0b4e61ba87848ba0160afda6c595b90d5) \u2014 ci: skip heavy checks for documentation-only changes (#3)\n- [03f8ff3c3914](https://github.com/open-ott-play/ottplay-core/commit/03f8ff3c39147ff5cd617ec97d20dad95e361730) \u2014 Add typed playback sessions and seek planning to shared core (#4)\n- [0a3b1c339d18](https://github.com/open-ott-play/ottplay-core/commit/0a3b1c339d189f02aa62d4520da0648035d5fc13) \u2014 ci: bound core artifacts and cancel superseded runs (#5)\n- [7da5ee293901](https://github.com/open-ott-play/ottplay-core/commit/7da5ee293901b10373762c71e897549d476c5762) \u2014 Add stable channel and media collection identities (#6)\n- [876cfed5ba53](https://github.com/open-ott-play/ottplay-core/commit/876cfed5ba537247c71d1ee55850901e2f33e024) \u2014 Use provider channel identities for combined operator catalogs (#7)\n- [3f663719a69d](https://github.com/open-ott-play/ottplay-core/commit/3f663719a69dba60e9d75ce1be0fa8c9d496105e) \u2014 Expose scoped programme identities and half-open guide timeline (#8)\n- [159d26eb48ad](https://github.com/open-ott-play/ottplay-core/commit/159d26eb48adaa991dfc0bf47431a9348d653eb1) \u2014 Preserve explicit legacy channel references for bookmark import\n- [6de6005a6cb0](https://github.com/open-ott-play/ottplay-core/commit/6de6005a6cb0467fe85733d8756f54eae0356420) \u2014 Retain numeric Stalker aliases with truthy non-string titles\n- [a87574734541](https://github.com/open-ott-play/ottplay-core/commit/a875747345410c70cd36da40b43e7db1d05510b5) \u2014 Merge pull request #9 from open-ott-play/codex/catalog-migration-metadata\n- [b51487662c4e](https://github.com/open-ott-play/ottplay-core/commit/b51487662c4e644cda69927a58c9d3dba458bd79) \u2014 fix(core): parse quoted playlist labels and blank URI lines (#10)\n- [26051b623a3b](https://github.com/open-ott-play/ottplay-core/commit/26051b623a3b2d9d6887105b893747c36a53a2e1) \u2014 ci: deliver qualified shared core artifacts to consumers (#11)\n- [83f141d75f1d](https://github.com/open-ott-play/ottplay-core/commit/83f141d75f1db895d6552cbcd4d8c76a4635cfa2) \u2014 ci: pin delivery workflow to the merged toolkit revision (#12)\n- [ecb114d49b80](https://github.com/open-ott-play/ottplay-core/commit/ecb114d49b80dc67cad401c2ba0459959b580d73) \u2014 docs: remove research reports and comparison history (#13)\n- [13d3586bbd81](https://github.com/open-ott-play/ottplay-core/commit/13d3586bbd81199bf608adeae00931efe2cdefcd) \u2014 perf: shrink shared JS and avoid repeated catalog work (#14)\n- [86ff7ae1c08b](https://github.com/open-ott-play/ottplay-core/commit/86ff7ae1c08bced9de8211220487fac5f5e2a369) \u2014 perf: compact private Kotlin JavaScript helper names (#15)\n- [0285e2f18378](https://github.com/open-ott-play/ottplay-core/commit/0285e2f18378c8b4f27105fd90decf43a59dff76) \u2014 chore: update ottplay-shared-core vendor package (#16)\n- [3b9514b5b713](https://github.com/open-ott-play/ottplay-core/commit/3b9514b5b7133bd07b31aa671c8d0ba070fdd00b) \u2014 perf: remove repeated guide-key parsing and decimal scanning (#17)\n- [842d00e0129c](https://github.com/open-ott-play/ottplay-core/commit/842d00e0129ccd0030643f2877f649460c65a2a1) \u2014 chore: update ottplay-shared-core vendor package (#18)\n- [28ec1bf653cb](https://github.com/open-ott-play/ottplay-core/commit/28ec1bf653cb4a20ab9634d4e18d1fc7eed6a800) \u2014 ci: add opt-in k3s runners for trusted main builds (#19)\n- [a37fc5ca8388](https://github.com/open-ott-play/ottplay-core/commit/a37fc5ca8388aabf4d59244081fa4f3691909e74) \u2014 fix(stalker): support bulk catalogs and browser HLS gateway links (#20)\n- [0cd23d4d35ea](https://github.com/open-ott-play/ottplay-core/commit/0cd23d4d35ea587a8c3482c024cebcef7abc2da4) \u2014 test: pin release contracts and verify server-authorized SWOP (#22)\n- [93570780e567](https://github.com/open-ott-play/ottplay-core/commit/93570780e567268723ab5a751d1bbc48a4f02544) \u2014 Speed up shared XMLTV timestamp decoding and encoding (#23)\n- [1147f96ebf87](https://github.com/open-ott-play/ottplay-core/commit/1147f96ebf8757db6b061e3178fe71acd473d6be) \u2014 perf(epg): avoid redundant native timestamp allocations (#24)\n- [fd6ff7b0e356](https://github.com/open-ott-play/ottplay-core/commit/fd6ff7b0e3567604b072ffdfa8e3488bbee7ac4b) \u2014 docs(epg): define guarded native server record compatibility exception (#26)\n- [5504002aaf6e](https://github.com/open-ott-play/ottplay-core/commit/5504002aaf6ea6cf289cc8fbf522f5ae40c7c6ca) \u2014 fix(epg): preserve server guide after all sources fail\n- [45c25563cd2b](https://github.com/open-ott-play/ottplay-core/commit/45c25563cd2b833d23fd46dbe61cb9374b716d72) \u2014 Merge pull request #27 from open-ott-play/fix/epg-refresh-recovery-20260928\n- [0348c86efba9](https://github.com/open-ott-play/ottplay-core/commit/0348c86efba98b8d11ec27e99aaa61a30caee54c) \u2014 chore: update ottplay-shared-core vendor package\n- [25fb158ca7b5](https://github.com/open-ott-play/ottplay-core/commit/25fb158ca7b59bfb74fc98f0a9b49148592ca37a) \u2014 Merge pull request #28 from open-ott-play/codex/vendor-95ee14aa1b2bcd4b515d546e5c8591f5b9c5527a5cad9d17f7613309da155bbf\n- [30660f2944af](https://github.com/open-ott-play/ottplay-core/commit/30660f2944af5475fb44477134a767dec68785f5) \u2014 Pin vendor delivery to reviewed run-state diagnostics\n- [82dc7fc0c2a1](https://github.com/open-ott-play/ottplay-core/commit/82dc7fc0c2a18dc574c3d39b08d6c1b207d5d27c) \u2014 Merge pull request #29 from open-ott-play/codex/vendor-state-diagnostics-pin-20260929\n- [fba18169883a](https://github.com/open-ott-play/ottplay-core/commit/fba18169883a1b0cc9c75b00d4375871ffc0de46) \u2014 docs: record beta9 and SWOP PR36 compatibility scope\n- [51e60c5bb110](https://github.com/open-ott-play/ottplay-core/commit/51e60c5bb110973c6c6ca63cc865fd487aecee53) \u2014 Merge pull request #30 from open-ott-play/codex/compatibility-beta9-pr36-20260929\n- [cff9ce1c04f6](https://github.com/open-ott-play/ottplay-core/commit/cff9ce1c04f6eea93b4cbe0ddef4c1b9b67efe7f) \u2014 perf(core): index native EPG fuzzy match candidates (#31)\n- [f4cbc7e15340](https://github.com/open-ott-play/ottplay-core/commit/f4cbc7e153404814b98fb95037884169e25d8728) \u2014 Avoid substring allocations when matching guide aliases (#32)\n- [fbd1c9a6feca](https://github.com/open-ott-play/ottplay-core/commit/fbd1c9a6feca80c3b09f0fec729133bea1447e91) \u2014 test(swop): qualify beta18 wire contracts and preserve legacy harness (#34)\n- [a7fd7f29857b](https://github.com/open-ott-play/ottplay-core/commit/a7fd7f29857b4e53c2b0fcfee37c8824be1cab5d) \u2014 docs: record scoped beta18 physical iPhone acceptance (#35)\n- [7cb7b28b6744](https://github.com/open-ott-play/ottplay-core/commit/7cb7b28b6744643d350870bcc1625d6f64ccb71f) \u2014 fix: prefer intact native guide aliases over regional collisions (#36)\n- [281ab4036be5](https://github.com/open-ott-play/ottplay-core/commit/281ab4036be5f9f7f0cceb3d560e340e41ff350b) \u2014 chore: update ottplay-shared-core vendor package (#37)\n- [91717c4104bb](https://github.com/open-ott-play/ottplay-core/commit/91717c4104bbb4a6d7807a635d27610df0e546c0) \u2014 docs: record combined beta.5 compatibility evidence (#38)\n- [5213a3ab6b49](https://github.com/open-ott-play/ottplay-core/commit/5213a3ab6b4994d1a5929a437c72dfecff37baf0) \u2014 perf(core): reduce eager EPG index construction allocations (#39)\n- [9e8b76a0b6eb](https://github.com/open-ott-play/ottplay-core/commit/9e8b76a0b6ebd2d2a06e3c9892f3b5eb5360b95f) \u2014 perf(core): reduce eager guide name indexing work (#41)\n- [dfd316ba9f1c](https://github.com/open-ott-play/ottplay-core/commit/dfd316ba9f1c4bdf4a41396aa07a5c02318dea00) \u2014 fix(core): preserve numeric hyphens in guide channel names (#43)\n- [b75c9ab18e8b](https://github.com/open-ott-play/ottplay-core/commit/b75c9ab18e8b0b57ef43e4e3474b09898a2bd7dc) \u2014 chore: update ottplay-shared-core vendor package\n- [5cca18a7e6f2](https://github.com/open-ott-play/ottplay-core/commit/5cca18a7e6f2833c915c6621d24077d0a197c67c) \u2014 chore(ci): request CodeRabbit reviews for new public PRs (#45)\n- [a7cf1496aa48](https://github.com/open-ott-play/ottplay-core/commit/a7cf1496aa48abf91ae1b1b35531446728b7873b) \u2014 Merge pull request #44 from open-ott-play/codex/vendor-72ca1fb94d79657903eef0ddcba309df51ba9ca13d6aef0eab1b25ccdc4a49c6\n- [f9bb4d610af4](https://github.com/open-ott-play/ottplay-core/commit/f9bb4d610af4af3d8b3971826c6e471e676f4e0c) \u2014 docs: link the independent core consumers (#46)\n- [aa6816e2b6f6](https://github.com/open-ott-play/ottplay-core/commit/aa6816e2b6f60060e6e9a5cab1cfc9e201daf90d) \u2014 perf: stop guide lookups once a unique match is found (#47)\n- [7035c513d3fc](https://github.com/open-ott-play/ottplay-core/commit/7035c513d3fc3bc49a150121f122af32ea03914b) \u2014 chore: update ottplay-shared-core vendor package (#48)\n- [cd51eb2e28d5](https://github.com/open-ott-play/ottplay-core/commit/cd51eb2e28d539f2f311137a057e6bf210eab4b5) \u2014 \\[StepSecurity\\] ci: harden GitHub Actions (#49)\n- [ae609e806087](https://github.com/open-ott-play/ottplay-core/commit/ae609e8060877a074e1509e8e7577bb5c9a68518) \u2014 ci: request CodeRabbit autofix after completed reviews (#61)\n- [be939cca7e71](https://github.com/open-ott-play/ottplay-core/commit/be939cca7e71dcfbfdba4f6930fe1af20385353c) \u2014 fix: constrain relay destinations and update vulnerable test tools (#62)\n- [41588ead8f48](https://github.com/open-ott-play/ottplay-core/commit/41588ead8f48c429312b8f38108b015e9c5ec48a) \u2014 fix: enforce strong upstream TLS keys in Node services (#63)\n- [96767e8feb03](https://github.com/open-ott-play/ottplay-core/commit/96767e8feb0314116a52342da25aaf5f0943ec3a) \u2014 fix: enforce playlist and EPG size limits (#65)\n- [d3fcf9e3dc7a](https://github.com/open-ott-play/ottplay-core/commit/d3fcf9e3dc7a87f33f9aa3218a80d4a26bf14194) \u2014 chore: update ottplay-shared-core vendor package (#66)\n- [7505972ba206](https://github.com/open-ott-play/ottplay-core/commit/7505972ba206378d5a3c86f461423633854bc895) \u2014 Prepare browser beta 3 with coordinated and qualified dependencies (#60)\n- [6aed90fb8db1](https://github.com/open-ott-play/ottplay-core/commit/6aed90fb8db13c6edaca66827a23372982d137b4) \u2014 Qualify playback and build security patches for beta 4 (#67)\n- [be61a9757881](https://github.com/open-ott-play/ottplay-core/commit/be61a9757881ccd9285144aea4cfc69709810e6d) \u2014 Qualify compiled core release candidates with offline fuzzing (#73)\n- [080cabd3efea](https://github.com/open-ott-play/ottplay-core/commit/080cabd3efeadb7f697354ebb1d55a7c58727e94) \u2014 fix(release): validate current core publication notes (#75)\n- [06e811fca351](https://github.com/open-ott-play/ottplay-core/commit/06e811fca351a9fcbd0cebf6a5f112c8fadde892) \u2014 chore: update ottplay-shared-core vendor package (#74)\n\n\n\n", "url": "https://gist.github.com/4alvit/51780c643839e0155dfe3a04f4f76daa"}, {"timestamp": "2026-10-14T05:10:06Z", "date_only": false, "value": "2026-10-14T05:10:06Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-GALLERY-DL-CVE-2026-45409", "record": "BREW-GALLERY-DL-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-14T09:04:11Z", "date_only": false, "value": "2026-10-14T09:04:11Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-WEAVIATE-CLI-CVE-2026-45409", "record": "BREW-WEAVIATE-CLI-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-15T09:15:04Z", "date_only": false, "value": "2026-10-15T09:15:04Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ENEX2NOTION-CVE-2026-45409", "record": "BREW-ENEX2NOTION-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-15T17:08:40Z", "date_only": false, "value": "2026-10-15T17:08:40Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.revision_history.5.date", "linked_record": true}, {"timestamp": "2026-10-15T17:08:40Z", "date_only": false, "value": "2026-10-15T17:08:40Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:22271-1", "record": "SUSE-SU-2026:22271-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-16T09:10:14Z", "date_only": false, "value": "2026-10-16T09:10:14Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-ALOT-CVE-2026-45409", "record": "BREW-ALOT-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-17T09:42:32Z", "date_only": false, "value": "2026-10-17T09:42:32Z", "kind": "other", "label": "Updated", "source": "osv_ubuntu \u00b7 UBUNTU-CVE-2026-45409", "record": "UBUNTU-CVE-2026-45409", "field": "modified", "linked_record": true}, {"timestamp": "2026-10-19T09:03:48Z", "date_only": false, "value": "2026-10-19T09:03:48Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-19T09:03:49Z", "date_only": false, "value": "2026-10-19T09:03:49Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-19T09:03:50Z", "date_only": false, "value": "2026-10-19T09:03:50Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-19T09:03:50Z", "date_only": false, "value": "2026-10-19T09:03:50Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-19T09:03:51Z", "date_only": false, "value": "2026-10-19T09:03:51Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-19T09:03:52Z", "date_only": false, "value": "2026-10-19T09:03:52Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-21T00:00:00Z", "date_only": true, "value": "2026-10-21", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1366", "record": "CERTFR-2026-AVI-1366", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-10-21T00:00:00Z", "date_only": true, "value": "2026-10-21", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1385", "record": "CERTFR-2026-AVI-1385", "field": "vendor_advisories.0.published_at", "linked_record": true}, {"timestamp": "2026-10-22T00:00:00Z", "date_only": false, "value": "2026-10-22T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1366", "record": "CERTFR-2026-AVI-1366", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-10-22T00:00:00Z", "date_only": false, "value": "2026-10-22T00:00:00", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1366", "record": "CERTFR-2026-AVI-1366", "field": "initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-22T00:00:00Z", "date_only": false, "value": "2026-10-22T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1366", "record": "CERTFR-2026-AVI-1366", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-10-26T00:00:00Z", "date_only": false, "value": "2026-10-26T00:00:00", "kind": "other", "label": "Last revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1385", "record": "CERTFR-2026-AVI-1385", "field": "last_revision_date", "linked_record": true}, {"timestamp": "2026-10-26T00:00:00Z", "date_only": false, "value": "2026-10-26T00:00:00", "kind": "milestone", "label": "Published", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1385", "record": "CERTFR-2026-AVI-1385", "field": "initial_release_date", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-26T00:00:00Z", "date_only": false, "value": "2026-10-26T00:00:00.000000", "kind": "other", "label": "Revision date", "source": "certfr_avis \u00b7 CERTFR-2026-AVI-1385", "record": "CERTFR-2026-AVI-1385", "field": "revisions.0.revision_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:30Z", "date_only": false, "value": "2026-10-28T17:55:30Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:30Z", "date_only": false, "value": "2026-10-28T17:55:30Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4580-1", "record": "SUSE-SU-2026:4580-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:31Z", "date_only": false, "value": "2026-10-28T17:55:31Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:31Z", "date_only": false, "value": "2026-10-28T17:55:31Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4581-1", "record": "SUSE-SU-2026:4581-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:33Z", "date_only": false, "value": "2026-10-28T17:55:33Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:33Z", "date_only": false, "value": "2026-10-28T17:55:33Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4582-1", "record": "SUSE-SU-2026:4582-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:34Z", "date_only": false, "value": "2026-10-28T17:55:34Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:34Z", "date_only": false, "value": "2026-10-28T17:55:34Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4583-1", "record": "SUSE-SU-2026:4583-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:36Z", "date_only": false, "value": "2026-10-28T17:55:36Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:36Z", "date_only": false, "value": "2026-10-28T17:55:36Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4584-1", "record": "SUSE-SU-2026:4584-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:37Z", "date_only": false, "value": "2026-10-28T17:55:37Z", "kind": "other", "label": "Advisory revision", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.revision_history.3.date", "linked_record": true}, {"timestamp": "2026-10-28T17:55:37Z", "date_only": false, "value": "2026-10-28T17:55:37Z", "kind": "other", "label": "Updated", "source": "csaf_suse \u00b7 SUSE-SU-2026:4585-1", "record": "SUSE-SU-2026:4585-1", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-30T07:36:18Z", "date_only": false, "value": "2026-10-30T07:36:18+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-30T07:36:18Z", "date_only": false, "value": "2026-10-30T07:36:18+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-30T07:36:18Z", "date_only": false, "value": "2026-10-30T07:36:18+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:25503", "record": "RHSA-2026:25503", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-30T11:07:08.634Z", "date_only": false, "value": "2026-10-30T11:07:08.634750Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-KS12582", "record": "CLEANSTART-2026-KS12582", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T11:56:37.140Z", "date_only": false, "value": "2026-10-31T11:56:37.140544Z", "kind": "milestone", "label": "Published", "source": "cleanstart \u00b7 CLEANSTART-2026-FP94901", "record": "CLEANSTART-2026-FP94901", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, {"timestamp": "2026-10-31T15:41:07Z", "date_only": false, "value": "2026-10-31T15:41:07+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:07Z", "date_only": false, "value": "2026-10-31T15:41:07+00:00", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:07Z", "date_only": false, "value": "2026-10-31T15:41:07+00:00", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 RHSA-2026:54484", "record": "RHSA-2026:54484", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:08Z", "date_only": false, "value": "2026-10-31T15:41:08+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:08Z", "date_only": false, "value": "2026-10-31T15:41:08+00:00", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:08Z", "date_only": false, "value": "2026-10-31T15:41:08+00:00", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:09Z", "date_only": false, "value": "2026-10-31T15:41:09+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:09Z", "date_only": false, "value": "2026-10-31T15:41:09+00:00", "kind": "other", "label": "Document generated", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-10-31T15:41:09Z", "date_only": false, "value": "2026-10-31T15:41:09+00:00", "kind": "other", "label": "Updated", "source": "csaf_opensuse \u00b7 RHSA-2026:54481", "record": "RHSA-2026:54481", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:46Z", "date_only": false, "value": "2026-11-03T10:00:46+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:46Z", "date_only": false, "value": "2026-11-03T10:00:46+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:46Z", "date_only": false, "value": "2026-11-03T10:00:46+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:58981", "record": "RHSA-2026:58981", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:49Z", "date_only": false, "value": "2026-11-03T10:00:49+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:49Z", "date_only": false, "value": "2026-11-03T10:00:49+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:49Z", "date_only": false, "value": "2026-11-03T10:00:49+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:61783", "record": "RHSA-2026:61783", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:50Z", "date_only": false, "value": "2026-11-03T10:00:50+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:50Z", "date_only": false, "value": "2026-11-03T10:00:50+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:00:50Z", "date_only": false, "value": "2026-11-03T10:00:50+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:66018", "record": "RHSA-2026:66018", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:31Z", "date_only": false, "value": "2026-11-03T10:01:31+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:31Z", "date_only": false, "value": "2026-11-03T10:01:31+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:31Z", "date_only": false, "value": "2026-11-03T10:01:31+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:39Z", "date_only": false, "value": "2026-11-03T10:01:39+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:39Z", "date_only": false, "value": "2026-11-03T10:01:39+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:01:39Z", "date_only": false, "value": "2026-11-03T10:01:39+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:34119", "record": "RHSA-2026:34119", "field": "document.tracking.current_release_date", "linked_record": true}, {"timestamp": "2026-11-03T10:04:29Z", "date_only": false, "value": "2026-11-03T10:04:29+00:00", "kind": "other", "label": "Advisory revision", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.revision_history.2.date", "linked_record": true}, {"timestamp": "2026-11-03T10:04:29Z", "date_only": false, "value": "2026-11-03T10:04:29+00:00", "kind": "other", "label": "Document generated", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.generator.date", "linked_record": true}, {"timestamp": "2026-11-03T10:04:29Z", "date_only": false, "value": "2026-11-03T10:04:29+00:00", "kind": "other", "label": "Updated", "source": "csaf_redhat \u00b7 RHSA-2026:56431", "record": "RHSA-2026:56431", "field": "document.tracking.current_release_date", "linked_record": true}], "metrics": {"as_of": "2026-11-03T16:38:22.717Z", "anchors": {"origin": {"timestamp": "2026-05-19T14:34:32Z", "date_only": false, "value": "2026-05-19T14:34:32Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "discovery": {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-05-19T14:34:32Z", "date_only": false, "value": "2026-05-19T14:34:32Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "exploit_publication": null, "exploitation": null, "patch": {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": false, "missing": ["end"]}, "time_to_patch": {"available": false, "missing": ["start"]}, "total_time_to_patch": {"available": true, "seconds": 383589.708, "hours": 106.55269666666666, "days": 4.439695694444445, "min_seconds": 383589.708, "max_seconds": 383589.708, "approximate": false, "ongoing": false, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-06-05T23:01:44.292Z", "date_only": false, "value": "2026-06-05T23:01:44.292958+00:00", "kind": "other", "label": "Discovery date", "source": "csaf_opensuse \u00b7 RHSA-2026:54290", "record": "RHSA-2026:54290", "field": "vulnerabilities.0.discovery_date", "metric_role": "discovery", "metric_basis": "recorded_event", "linked_record": true}, "end": {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}, "discovery_after_disclosure": true}, "disclosure_to_patch": {"available": true, "seconds": 1882822.0, "hours": 523.0061111111111, "days": 21.791921296296298, "min_seconds": 1882822.0, "max_seconds": 1882822.0, "approximate": false, "ongoing": false, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-05-19T14:34:32Z", "date_only": false, "value": "2026-05-19T14:34:32Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "end": {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}}, "time_unpatched": {"available": true, "seconds": 1882822.0, "hours": 523.0061111111111, "days": 21.791921296296298, "min_seconds": 1882822.0, "max_seconds": 1882822.0, "approximate": false, "ongoing": false, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-05-19T14:34:32Z", "date_only": false, "value": "2026-05-19T14:34:32Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-65PC-FJ4G-8RJX", "record": "GHSA-65PC-FJ4G-8RJX", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event", "linked_record": true}, "end": {"timestamp": "2026-06-10T09:34:54Z", "date_only": false, "value": "2026-06-10T09:34:54+00:00", "kind": "other", "label": "Vendor fix", "source": "csaf_redhat \u00b7 RHSA-2026:25039", "record": "RHSA-2026:25039", "field": "vulnerabilities.4.remediations.0.date", "linked_record": true, "metric_role": "patch", "metric_basis": "recorded_event"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
