diff --git a/app/realtime.php b/app/realtime.php index ae83e4200a..1300c8c91c 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -608,7 +608,7 @@ $server->onWorkerStart(function (int $workerId) use ($server, $register, $stats, Query::equal('hostname', [$hostname]), Query::equal('source', ['realtime']), ]); - triggerPresenceUsage($deletionCount, $project); + triggerPresenceUsage(-$deletionCount, $project); } catch (Throwable $th) { Console::error("Realtime startup orphan sweep failed for project {$project->getId()}: {$th->getMessage()}"); logError($th, 'realtimeOrphanPresenceCleanup', tags: [ @@ -1370,7 +1370,7 @@ $server->onClose(function (int $connection) use ($realtime, $stats, $register) { try { $deletionCount = $dbForProject->deleteDocuments('presenceLogs', [Query::equal('$id', $presenceIds)]); - triggerPresenceUsage($deletionCount, $project); + triggerPresenceUsage(-$deletionCount, $project); } catch (Throwable $th) { Span::error($th); logError($th, 'realtimeOnClosePresenceDeletion', tags: [ diff --git a/src/Appwrite/Utopia/Response/Model/Presence.php b/src/Appwrite/Utopia/Response/Model/Presence.php index 3a2899d095..b6da06c0a3 100644 --- a/src/Appwrite/Utopia/Response/Model/Presence.php +++ b/src/Appwrite/Utopia/Response/Model/Presence.php @@ -87,7 +87,6 @@ class Presence extends Any 'default' => null, 'example' => self::TYPE_DATETIME_EXAMPLE, ]); - // `hostname` is intentionally not exposed. // User-defined extras flow through Any's generic mapping, surfaced under // the "metadata" key declared via setAdditionalPropertiesKey() above. }