ObjectServiceInterface gains two methods for high-volume writers (the traffic-analytics collector):
public function appendObjectsRaw(array $objects, string|int $register, string|int $schema): int;
public function purgeExpiredObjectsRaw(string|int $register, string|int $schema): int;
Every class that implements ObjectServiceInterface must declare both or it fatals at class load. The same sweep as #2543 applies; the doubles it named are the ones affected again:
- pipelinq
tests/Stubs/Service/ObjectService.php, with its paired tests/Stubs/Contract/ObjectServiceInterface.php
- shillinq
tests/Unit/Service/Support/InMemoryObjectServiceStub.php and DuckObjectServiceAdapter.php
- docudesk (filinq)
tests/stubs/OpenRegisterStubs.php for parity only; it implements nothing and cannot fatal
createMock() sites are unaffected: a generated mock tracks whatever the interface declares.
The break lands on the conduction/hydra-gates release that carries the updated hydra-gates/contracts/ObjectServiceInterface.php, not on the openregister merge, because leaf apps read the contract from vendor/. Land the doubles before that release, or pin.
Both methods skip RBAC, multitenancy, validation, the audit trail, lifecycle events, the search index, relations and files by design; a double may implement them as a plain array append and a no-op purge.
ObjectServiceInterfacegains two methods for high-volume writers (the traffic-analytics collector):Every class that
implements ObjectServiceInterfacemust declare both or it fatals at class load. The same sweep as #2543 applies; the doubles it named are the ones affected again:tests/Stubs/Service/ObjectService.php, with its pairedtests/Stubs/Contract/ObjectServiceInterface.phptests/Unit/Service/Support/InMemoryObjectServiceStub.phpandDuckObjectServiceAdapter.phptests/stubs/OpenRegisterStubs.phpfor parity only; it implements nothing and cannot fatalcreateMock()sites are unaffected: a generated mock tracks whatever the interface declares.The break lands on the
conduction/hydra-gatesrelease that carries the updatedhydra-gates/contracts/ObjectServiceInterface.php, not on the openregister merge, because leaf apps read the contract fromvendor/. Land the doubles before that release, or pin.Both methods skip RBAC, multitenancy, validation, the audit trail, lifecycle events, the search index, relations and files by design; a double may implement them as a plain array append and a no-op purge.