DEENESPTFRRUARHIKOZHNL

namespace ara::shwa

Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

160 API-Records in Kapitel 8: 18 Klassen, 120 Funktionen, 4 Enumerationen und 3 Typ-Aliasse.

User GuideKI-GENERIERT

Ermöglicht die sichere Auslagerung rechenintensiver Aufgaben auf spezialisierte Hardwarebeschleuniger.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 94872e9e2305 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht die sichere Auslagerung rechenintensiver Aufgaben auf spezialisierte Hardwarebeschleuniger.

Der Namespace ara::shwa bietet Schnittstellen für sichere Hardwarebeschleunigung und ermöglicht die gezielte Auslagerung paralleler Rechenaufgaben auf Geräte wie GPUs oder CPUs über das Zielformat Target ([AP_SWS_SHWA_00102]). Anwendungen selektieren Beschleuniger über Selektoren, erzeugen exklusiv verwaltete Ausführungswarteschlangen und steuern den Speicherzugriff über Puffer-Accessoren. Als zentrale Randbedingung gilt ein striktes Besitzmodell mit nicht kopierbaren Ressourcen sowie eine ausnahmsfreie Fehlersignalisierung über ShwaErrorCode ([AP_SWS_SHWA_01301]).

Kontext

Der Namespace ara::shwa (Safe Hardware Acceleration) stellt innerhalb der AUTOSAR Adaptive Platform Schnittstellen bereit, um rechenintensive Aufgaben auf spezialisierte Hardwarebeschleuniger auszulagern. Das Modul ermöglicht die Einbindung unterschiedlicher Beschleunigertypen wie Grafikprozessoren (GPU), digitaler Signalprozessoren oder dedizierter Hauptprozessoren (CPU).

Die Erkennung der Systemumgebung erfolgt über die Klasse Platform, welche die auf dem Steuergerät verfügbaren Hardwareplattformen ermittelt und die zugehörigen Device-Instanzen auflistet. Die Auswahl eines geeigneten Geräts kann dynamisch oder statisch über spezialisierte Selektoren gesteuert werden: DeviceSelector agiert als aufrufbares Funktionsobjekt zur Priorisierung verfügbarer Einheiten anhand eines ganzzahligen Rangs, während CpuSelector, GpuSelector und AcceleratorSelector gezielt spezifische Ausführungseinheiten adressieren. Der aktuelle Betriebszustand eines Beschleunigers wird über die Enumeration DeviceStatus ([AP_SWS_SHWA_00103]) abgebildet.

Für die parallele Ausführung von Rechenoperationen ist die Queue zuständig. Berechnungsaufträge werden über TaskHandler gekapselt, wobei der Ausführungsort über Target ([AP_SWS_SHWA_00102]) wahlweise auf dem Beschleuniger (kDevice) oder auf der Host-CPU (kHostTask) festgelegt wird. Speicherbereiche für Ein- und Ausgabedaten werden über Buffer unter Verwendung der Dimensionsangabe Range allokiert. Der Zugriff auf diese Puffer wird durch Accessor-Objekte geregelt, welche den Zugriffsmodus über AccessMode ([AP_SWS_SHWA_00101]) einschränken.

context Application Application Platform Platform Application->Platform fragt ab DeviceSelector DeviceSelector Application->DeviceSelector nutzt Queue Queue Application->Queue besitzt Buffer Buffer Application->Buffer besitzt Device Device Platform->Device listet DeviceSelector->Device wählt aus Queue->Device bindet TaskHandler TaskHandler Queue->TaskHandler erzeugt Event Event Queue->Event erzeugt Range Range Buffer->Range beschreibt Accessor Accessor Buffer->Accessor erzeugt

Kontextdiagramm: Zusammenspiel der Kernklassen zur Hardwareauswahl, Speicherverwaltung und Aufgabenausführung. Quellen: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Lebenszyklus

Das Ressourcen- und Lebenszyklusmodell in ara::shwa unterscheidet strikt zwischen ressourcenbesitzenden Objekten, deskriptiven Handles und warteschlangenabhängigen Komponenten:

  • Ressourcenbesitzende Klassen: Queue, Buffer und Accessor verwalten Hardwareressourcen und Speicherbereiche exklusiv. Sie sind nicht kopierbar (not copyable) und müssen zwingend über std::unique_ptr verwaltet werden. Eine Weitergabe oder Übergabe ist ausschließlich über Move-Semantik gestattet.
  • Deskriptive Handles und Hilfsklassen: Platform, Device, DeviceMonitor, Id, Range und PropertyList besitzen keine Hardwareressourcen exklusiv. Sie sind kopierbar ausgelegt. Eine Instanz von Device stellt lediglich eine Zugriffsschnittstelle auf ein Gerät dar, kontrolliert dieses jedoch nicht exklusiv. Interpretation: Die Initialisierung einer Ausführungswarteschlange (Queue) bindet sich an ein spezifisches, zuvor ausgewähltes Device, da Queue Ressourcen exklusiv verwaltet. Frage Q-c38811a811f133d0 (offen)
  • Abhängige Komponenten: Die Klassen Event (zur Synchronisation) und TaskHandler (zur Aufgabenabarbeitung) können ausschließlich innerhalb einer Queue erzeugt werden; außerhalb des Kontexts einer Warteschlange besitzen sie keine funktionale Bedeutung.

Der Lebenszyklus eines Geräts spiegelt sich in DeviceStatus ([AP_SWS_SHWA_00103]) wider: Neben dem betriebsbereiten Zustand kReady kann ein Gerät als nicht zugänglich (kNotAccesible), fehlerhaft (kFailure) oder unbekannt (kUnknown) ausgewiesen werden. Interpretation: Zustandsänderungen eines Geräts zwischen kReady, kNotAccesible und kFailure werden zur Laufzeit über Hilfsklassen wie den DeviceMonitor bzw. die Plattform erkannt. Frage Q-8fc0dc95534dc8bc (offen)

Nutzungspfad

Die typische Verwendung von ara::shwa zur Ausführung einer beschleunigten Berechnung gliedert sich in fünf Schritte:

  1. Plattform- und Geräteauswahl: Die Anwendung ruft über Platform die vorhandenen Hardwareplattformen und deren zugeordnete Device-Instanzen ab. Ein Selektor (wie DeviceSelector, GpuSelector oder CpuSelector) ermittelt das am besten geeignete Gerät, dessen DeviceStatus ([AP_SWS_SHWA_00103]) den Status kReady aufweist.
  2. Warteschlange instanziieren: Für das ausgewählte Device wird eine Queue erzeugt und als std::unique_ptr gehalten.
  3. Speicher allokieren und vorbereiten: Für Eingabe- und Ausgabedaten wird ein Buffer mit den geforderten Dimensionen über Range erzeugt. Zur Befüllung oder Auswertung fordert die Anwendung einen Accessor an, wobei der Zugriffsmodus über AccessMode ([AP_SWS_SHWA_00101]) als kRead, kWrite oder kReadWrite deklariert wird.
  4. Task registrieren und ausführen: Innerhalb der Queue wird ein TaskHandler erstellt. Die Ausführung wird gestartet, wobei über Target ([AP_SWS_SHWA_00102]) festgelegt ist, ob der Task auf dem Beschleuniger (kDevice) oder auf dem Host (kHostTask) läuft.
  5. Synchronisation: Die Queue stellt ein Event bereit, mit dem die Host-Anwendung die asynchrone Beendigung der Berechnungen auf dem Hardwarebeschleuniger überwacht und den Datenabgleich synchronisiert.
Nutzungspfad zur Aufgabenverarbeitung in ara::shwaAnwendungPlatformDeviceSelectorQueueBufferVerfügbare Geräte abfragenListe von Device-ObjektenGerät auswählenAusgewähltes DeviceQueue für Device instanziierenBuffer mit Range erzeugenAccessor mit AccessMode anfordernAccessor bereitstellenTaskHandler mit Target übergebenEvent zur Synchronisation erzeugen

Sequenzdiagramm: Ablauf von der Plattformabfrage über die Pufferallokation bis zur synchronisierten Ausführung. Quellen: [AP_SWS_SHWA_00101], [AP_SWS_SHWA_00102], [AP_SWS_SHWA_00103]

Fehlerszenarien

Die Programmierschnittstelle von ara::shwa ist ausnahmsfrei (exception-free) gestaltet. Fehlerzustände werden synchron über ara::core::ErrorCode zurückgegeben. Die Erzeugung der Fehlercodes erfolgt über die Fabrikfunktion MakeErrorCode ([AP_SWS_SHWA_01312]) unter Bezugnahme auf die Fehlerdomäne GetShwaDomain ([AP_SWS_SHWA_01311]). Sofern die Anwendungsarchitektur ein ausnahmebasiertes Fehlermodell vorsieht, kann der Fehlercode in eine ShwaException konvertiert und geworfen werden.

Die Enumeration ShwaErrorCode ([AP_SWS_SHWA_01301]) spezifiziert standardisierte Fehlerursachen:

  • Speicher- und Zugriffsprobleme: Schlägt die Allokation von Arbeitsspeicher fehl, resultiert dies in kMemoryNotAllocated. Kann die Datenkonsistenz eines Puffers nicht aufrechterhalten werden, wird kIntegrityCorrupted gemeldet. Unzulässige Zugriffsmodi oder fehlschlagende Operationen an Accessor-Objekten führen zu kInvalidAccessMode bzw. kAccessorFailure.
  • Ausführungs- und Synchronisationsfehler: Scheitert die Abarbeitung einer Aufgabe auf dem Zielgerät, wird kTaskExecutionFailure signalisiert. Unerlaubte Operationen auf Synchronisationsobjekten führen zu kEventInvalidOperation, während blockierte Ressourcen kResourceBusy auslösen. Bei Überschreiten konfigurierter Ausführungszeiten wird kTimedOut zurückgegeben.
  • Ungültige Parameter und Objektzustände: Der Aufruf von Methoden an zerstörten oder ungültigen Objekten führt zu kInvalidObject. Ungültige Indizes oder Parameter werden über kInvalidIndex bzw. kInvalidParameter abgewiesen. Nicht unterstützte Funktionen melden kFeatureNotSupported, während allgemeine Fehler über kRuntime erfasst werden.

Für die Behandlung von Fehlern, die während asynchroner Berechnungen auf dem Beschleuniger auftreten, wird die Klasse ErrorHandler eingesetzt.

Dieser Leitfaden basiert ausschließlich auf der Spezifikation für ara::shwa in AUTOSAR R25-11.

Themenkarte

KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Geräteauswahl

AcceleratorSelector manages accelerator selection for operations on HWA if available.

CpuSelector manages CPU selection for operations on HWA if available Allows to get a device from any supported backends for which the device type is CPU.

Class allowing to choose the most appropriate device of the available ones. This is a callable object taking a device reference and returning an integer rank. One of the device with the highest non-negative value is selected.

GpuSelector manages GPU selection for operations on HWA if available Select a device from any supported backends for which the device type is GPU.

Geräteabstraktion

Device class

Device class represents HWA device. Provides access to the device but not controlling it. Designed as copyable since not owning resources.

DeviceMonitor API class. Designed as copyable since not owning resources.

Id class

Id API class. Designed as copyable since not owning resources.

Platform class

Platform class is responsible for extracting different HWA platforms available for current application and listing Devices bind to each platform. Designed as copyable since not owning resources.

DeviceStatus enumeration

Die Enumeration definiert die folgenden standardisierten Werte.

enum class DeviceStatus : std::uint32_t {...};

Speicherzugriff

Accessor class

Accessor manages read and write access to allocated memory by Buffer. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr

Buffer class

Buffer manages memory allocation for operations on the host or/and HWA. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ptr, which may be moved. ≙ std::unique_ptr

Range class

Defines size of Buffer for one, two or three dimensions. Designed as copyable since not owning resources.

AccessMode enumeration

Die Enumeration definiert die folgenden standardisierten Werte.

enum class AccessMode : std::uint32_t {...};
Target enumeration

Die Enumeration definiert die folgenden standardisierten Werte.

enum class Target : std::uint32_t {...};

Auftragsausführung

Event class

Event class helps to manage task execution synchronization between HWA and Host application. Can be created only inside of the Queue otherwise it’s meaningless.

Queue class

Queue API provides the functionality for parallel processing on selected Device. Designed as not copyable, since it’s owning resources. Intended to be managed exclusively by std::unique_ ptr, which may be moved. ≙ std::unique_

Handles tasks execution on the selected Device Can be created only inside of the Queue otherwise it’s meaningless.

Fehlerbehandlung

ErrorHandler manages asynchronous error handling for operations on HWA.

Defines the error domain for Safe Hardware Acceleration.

Exception type could be thrown by application or other FC using Safe Hardware Acceleration. Safe Hardware Acceleration API is exception free and can only return an ErrorCode, but user code can transform this error to exception and throw if it’s alligned with system error handling architecture.

GetShwaDomain function

Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;
MakeErrorCode function

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

constexpr ara::core::ErrorCode MakeErrorCode (ShwaErrorCode code, ara::core::ErrorDomain::SupportDataType data) noexcept;
ShwaErrorCode enumeration

Die Enumeration definiert die folgenden standardisierten Werte.

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};

Herstellereigenschaften

Property List class is designed to enable vendor specific SHWA functionality extension and adjustment. Properties are not standardized and can be defined by Vendor. Class using Property list is obliged to have HasProperty() and GetProperty() methods defined.

Enumerationen

enumeration AccessMode [AP_SWS_SHWA_00101] Upstream: RS_SHWA_00017

enum class AccessMode : std::uint32_t {...};

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kRead — Nur-Lesen-Modus.
  • kWrite — Nur-Schreiben-Modus.
  • kReadWrite — Lese-/Schreibmodus.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00101
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00101@rel:R25-11#08a7ea1b
Content hash
08a7ea1b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00101
Status: valid/unmigrated Version: rel:R25-11#08a7ea1b Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00101@rel:R25-11#08a7ea1b
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

enumeration DeviceStatus [AP_SWS_SHWA_00103] Upstream: RS_SHWA_00004

enum class DeviceStatus : std::uint32_t {...};

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kReady (= 0) — Device ist für die Task-Ausführung bereit.
  • kNotAccesible (= 1) — Device ist nicht zugänglich.
  • kFailure (= 2) — Device im Fehlerzustand.
  • kUnknown (= 255) — Status kann nicht bestimmt werden.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00103
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00103@rel:R25-11#41762982
Content hash
41762982
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00103
Status: valid/unmigrated Version: rel:R25-11#41762982 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00103@rel:R25-11#41762982
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

enumeration Target [AP_SWS_SHWA_00102] Upstream: RS_SHWA_00001, RS_SHWA_00017

enum class Target : std::uint32_t {...};

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kDevice — Task läuft auf dem Gerät beziehungsweise Beschleuniger.
  • kHostTask — Task läuft auf dem Host (CPU).

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_00102
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_00102@rel:R25-11#8cd54cba
Content hash
8cd54cba
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_00102
Status: valid/unmigrated Version: rel:R25-11#8cd54cba Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_00102@rel:R25-11#8cd54cba
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

enumeration ShwaErrorCode [AP_SWS_SHWA_01301] Upstream: RS_AP_00122, RS_AP_00125, RS_AP_00127, RS_AP_00149

enum class ShwaErrorCode : ara::core::ErrorDomain::CodeType {...};

Die Enumeration definiert die folgenden standardisierten Werte.

Werte

  • kRuntime (= 1) — allgemeiner Laufzeitfehler.
  • kTaskExecutionFailure (= 2) — Fehler bei der Task-Ausführung.
  • kMemoryNotAllocated (= 3) — Speicherallokation fehlgeschlagen.
  • kIntegrityCorrupted (= 4) — Integrität eines Buffer-Speichers nicht herstellbar.
  • kResourceBusy (= 5) — Ressource ist belegt.
  • kInvalidAccessMode (= 6) — Zugriffsmodus ist unzulässig.
  • kAccessorFailure (= 7) — Accessor-Nutzung oder -Erzeugung fehlgeschlagen.
  • kEventInvalidOperation (= 8) — unzulässige Event-Operation.
  • kFeatureNotSupported (= 9) — Feature wird nicht unterstützt.
  • kInvalidIndex (= 10) — Index ist ungültig.
  • kInvalidParameter (= 11) — ungültiger API-Parameter.
  • kInvalidObject (= 12) — ungültiges oder zerstörtes Objekt verwendet.
  • kTimedOut (= 13) — Operation überschritt die Zeitgrenze.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01301
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01301@rel:R25-11#cfa33aae
Content hash
cfa33aae
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01301
Status: valid/unmigrated Version: rel:R25-11#cfa33aae Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01301@rel:R25-11#cfa33aae
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Dokumentation der freien Funktionen

function GetShwaDomain [AP_SWS_SHWA_01311] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00159

constexpr const ara::core::ErrorDomain & GetShwaDomain () noexcept;

Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.

Thread Safetythread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01311
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01311@rel:R25-11#733e648e
Content hash
733e648e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01311
Status: valid/unmigrated Version: rel:R25-11#733e648e Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01311@rel:R25-11#733e648e
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function MakeErrorCode [AP_SWS_SHWA_01312] Upstream: RS_AP_00119, RS_AP_00120, RS_AP_00121, RS_AP_00135

constexpr ara::core::ErrorCode MakeErrorCode (ShwaErrorCode code, ara::core::ErrorDomain::SupportDataType data) noexcept;

Die Spezifikation definiert diese Deklaration mit der in der Signatur ausgewiesenen Semantik.

Thread Safetythread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01312
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01312@rel:R25-11#a5d8ab39
Content hash
a5d8ab39
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01312
Status: valid/unmigrated Version: rel:R25-11#a5d8ab39 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01312@rel:R25-11#a5d8ab39
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill