diff --git a/.macroscope/check-run-agents/effect-service-conventions.md b/.macroscope/check-run-agents/effect-service-conventions.md index b76d56d45dbc..dec12bf9bfaa 100644 --- a/.macroscope/check-run-agents/effect-service-conventions.md +++ b/.macroscope/check-run-agents/effect-service-conventions.md @@ -54,7 +54,7 @@ Review changed TypeScript and directly affected call sites for the conventions b ## Errors and predicates -- Define service failures with `Schema.TaggedErrorClass` and structured attributes. Derive `message` from those attributes rather than storing an unstructured message as the only data. +- Define service failures with `Schema.TaggedError` and structured attributes. Derive `message` from those attributes rather than storing an unstructured message as the only data. - `Schema.Defect()` is not a substitute for modeling a generic error: its tag, fields, or both must identify the failure structurally, and its `message` must not merely stringify an opaque cause. A semantically precise error tag may preserve a real `cause` without inventing a redundant singleton field when no additional variable context exists; still retain any real path, resource, request, or entity context available at the wrapping site. - Capture stable, serializable domain context such as the operation or stage, resource/path or entity identifier, and normalized category/status. Map failures where that context is known instead of wrapping an entire multi-step pipeline in one generic error. Do not add a `detail` field that merely copies `cause.message` and then use it to construct the wrapper message. - Keep direct error attributes and log annotations safe and bounded. Do not copy raw wire payloads, command arguments or output, signed URLs, credentials, query strings, fragments, selectors, or arbitrary defect text into `detail`, `reason`, `message`, or a parallel log payload. Preserve the exact underlying value only as `cause`; expose normalized categories plus lengths/counts and safe URL protocol/hostname diagnostics where useful. Logging a sanitized error must not reintroduce a removed legacy `detail` or serialized `cause` field beside it. diff --git a/apps/desktop/src/app/DesktopApp.ts b/apps/desktop/src/app/DesktopApp.ts index 4101840530f6..1dc4b5bed42f 100644 --- a/apps/desktop/src/app/DesktopApp.ts +++ b/apps/desktop/src/app/DesktopApp.ts @@ -38,7 +38,7 @@ const makeDesktopRunId = Crypto.Crypto.pipe( Effect.map((value) => value.replaceAll("-", "").slice(0, 12)), ); -export class DesktopBackendPortUnavailableError extends Schema.TaggedErrorClass()( +export class DesktopBackendPortUnavailableError extends Schema.TaggedError()( "DesktopBackendPortUnavailableError", { startPort: Schema.Int, @@ -51,7 +51,7 @@ export class DesktopBackendPortUnavailableError extends Schema.TaggedErrorClass< } } -export class DesktopDevelopmentBackendPortRequiredError extends Schema.TaggedErrorClass()( +export class DesktopDevelopmentBackendPortRequiredError extends Schema.TaggedError()( "DesktopDevelopmentBackendPortRequiredError", {}, ) { diff --git a/apps/desktop/src/app/DesktopAppIdentity.ts b/apps/desktop/src/app/DesktopAppIdentity.ts index c5adb8574a53..7c6eaa928e9d 100644 --- a/apps/desktop/src/app/DesktopAppIdentity.ts +++ b/apps/desktop/src/app/DesktopAppIdentity.ts @@ -18,7 +18,7 @@ const AppPackageMetadata = Schema.Struct({ }); const decodeAppPackageMetadata = Schema.decodeEffect(Schema.fromJsonString(AppPackageMetadata)); -export class DesktopUserDataPathResolutionError extends Schema.TaggedErrorClass()( +export class DesktopUserDataPathResolutionError extends Schema.TaggedError()( "DesktopUserDataPathResolutionError", { legacyPath: Schema.String, diff --git a/apps/desktop/src/app/DesktopAssets.ts b/apps/desktop/src/app/DesktopAssets.ts index f1c6f1bb8f1f..31fa0cbbbf88 100644 --- a/apps/desktop/src/app/DesktopAssets.ts +++ b/apps/desktop/src/app/DesktopAssets.ts @@ -13,7 +13,7 @@ export interface DesktopIconPaths { readonly png: Option.Option; } -export class DesktopAssetProbeError extends Schema.TaggedErrorClass()( +export class DesktopAssetProbeError extends Schema.TaggedError()( "DesktopAssetProbeError", { fileName: Schema.String, diff --git a/apps/desktop/src/app/DesktopClerk.ts b/apps/desktop/src/app/DesktopClerk.ts index 9611dc083d2f..2811f873bfbe 100644 --- a/apps/desktop/src/app/DesktopClerk.ts +++ b/apps/desktop/src/app/DesktopClerk.ts @@ -16,7 +16,7 @@ import * as DesktopEnvironment from "./DesktopEnvironment.ts"; declare const __T3CODE_BUILD_CLERK_PUBLISHABLE_KEY__: string | undefined; -export class DesktopClerkBridgeInitializationError extends Schema.TaggedErrorClass()( +export class DesktopClerkBridgeInitializationError extends Schema.TaggedError()( "DesktopClerkBridgeInitializationError", { stateDir: Schema.String, @@ -29,7 +29,7 @@ export class DesktopClerkBridgeInitializationError extends Schema.TaggedErrorCla } } -export class DesktopClerkBridgeCleanupError extends Schema.TaggedErrorClass()( +export class DesktopClerkBridgeCleanupError extends Schema.TaggedError()( "DesktopClerkBridgeCleanupError", { stateDir: Schema.String, diff --git a/apps/desktop/src/app/DesktopConnectionCatalogStore.ts b/apps/desktop/src/app/DesktopConnectionCatalogStore.ts index 5ec2edb595ff..d6bf5edb0fdb 100644 --- a/apps/desktop/src/app/DesktopConnectionCatalogStore.ts +++ b/apps/desktop/src/app/DesktopConnectionCatalogStore.ts @@ -67,7 +67,7 @@ const DesktopConnectionCatalogStoreProtectionOperation = Schema.Literals([ "decrypt-catalog", ]); -export class DesktopConnectionCatalogStoreWriteError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreWriteError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreWriteError", { operation: DesktopConnectionCatalogStoreWriteOperation, @@ -80,7 +80,7 @@ export class DesktopConnectionCatalogStoreWriteError extends Schema.TaggedErrorC } } -export class DesktopConnectionCatalogStoreDecodeError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreDecodeError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreDecodeError", { resource: Schema.Literal("encryptedCatalog"), @@ -93,7 +93,7 @@ export class DesktopConnectionCatalogStoreDecodeError extends Schema.TaggedError } } -export class DesktopConnectionCatalogStoreReadError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreReadError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreReadError", { catalogPath: Schema.String, @@ -105,7 +105,7 @@ export class DesktopConnectionCatalogStoreReadError extends Schema.TaggedErrorCl } } -export class DesktopConnectionCatalogStoreDocumentDecodeError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreDocumentDecodeError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreDocumentDecodeError", { catalogPath: Schema.String, @@ -117,7 +117,7 @@ export class DesktopConnectionCatalogStoreDocumentDecodeError extends Schema.Tag } } -export class DesktopConnectionCatalogStoreMigrationError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreMigrationError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreMigrationError", { operation: DesktopConnectionCatalogStoreMigrationOperation, @@ -133,7 +133,7 @@ export class DesktopConnectionCatalogStoreMigrationError extends Schema.TaggedEr } } -export class DesktopConnectionCatalogStoreProtectionError extends Schema.TaggedErrorClass()( +export class DesktopConnectionCatalogStoreProtectionError extends Schema.TaggedError()( "DesktopConnectionCatalogStoreProtectionError", { operation: DesktopConnectionCatalogStoreProtectionOperation, diff --git a/apps/desktop/src/app/DesktopLifecycle.ts b/apps/desktop/src/app/DesktopLifecycle.ts index 6a98e59eb870..232a030c4684 100644 --- a/apps/desktop/src/app/DesktopLifecycle.ts +++ b/apps/desktop/src/app/DesktopLifecycle.ts @@ -16,7 +16,7 @@ import * as ElectronWindow from "../electron/ElectronWindow.ts"; import * as DesktopState from "./DesktopState.ts"; import * as DesktopWindow from "../window/DesktopWindow.ts"; -export class DesktopLifecycleRelaunchError extends Schema.TaggedErrorClass()( +export class DesktopLifecycleRelaunchError extends Schema.TaggedError()( "DesktopLifecycleRelaunchError", { reason: Schema.String, diff --git a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts index e531a54dfce6..c76f97d94aa2 100644 --- a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts +++ b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts @@ -24,7 +24,7 @@ export const URL_HANDLER_DESKTOP_ENTRY_NAME = "t3code-url-handler.desktop"; const { logInfo, logWarning } = makeComponentLogger("desktop-linux-url-handler"); -export class DesktopLinuxUrlHandlerRegistrationError extends Schema.TaggedErrorClass()( +export class DesktopLinuxUrlHandlerRegistrationError extends Schema.TaggedError()( "DesktopLinuxUrlHandlerRegistrationError", { step: Schema.Literals(["write-desktop-entry", "set-default-handler"]), diff --git a/apps/desktop/src/app/DesktopObservability.ts b/apps/desktop/src/app/DesktopObservability.ts index c393f4ccd9a9..d2ff0b4e2ad5 100644 --- a/apps/desktop/src/app/DesktopObservability.ts +++ b/apps/desktop/src/app/DesktopObservability.ts @@ -97,7 +97,7 @@ export function makeComponentLogger(component: string): DesktopComponentLogger { }; } -class DesktopLogFileWriterConfigurationError extends Schema.TaggedErrorClass()( +class DesktopLogFileWriterConfigurationError extends Schema.TaggedError()( "DesktopLogFileWriterConfigurationError", { option: Schema.Literals(["maxBytes", "maxFiles"]), diff --git a/apps/desktop/src/backend/DesktopBackendConfiguration.ts b/apps/desktop/src/backend/DesktopBackendConfiguration.ts index bcce731a5953..bbd52c19d0a0 100644 --- a/apps/desktop/src/backend/DesktopBackendConfiguration.ts +++ b/apps/desktop/src/backend/DesktopBackendConfiguration.ts @@ -21,7 +21,7 @@ import * as DesktopAppSettings from "../settings/DesktopAppSettings.ts"; import * as DesktopWslEnvironment from "../wsl/DesktopWslEnvironment.ts"; import * as DesktopWslServerTree from "../wsl/DesktopWslServerTree.ts"; -export class DesktopBackendObservabilitySettingsReadError extends Schema.TaggedErrorClass()( +export class DesktopBackendObservabilitySettingsReadError extends Schema.TaggedError()( "DesktopBackendObservabilitySettingsReadError", { settingsPath: Schema.String, diff --git a/apps/desktop/src/backend/DesktopBackendManager.ts b/apps/desktop/src/backend/DesktopBackendManager.ts index fc1968180901..9ad081ef4f0a 100644 --- a/apps/desktop/src/backend/DesktopBackendManager.ts +++ b/apps/desktop/src/backend/DesktopBackendManager.ts @@ -124,7 +124,7 @@ const backendProcessContextSchema = { httpBaseUrl: Schema.URL, }; -export class BackendReadinessTimeoutError extends Schema.TaggedErrorClass()( +export class BackendReadinessTimeoutError extends Schema.TaggedError()( "BackendReadinessTimeoutError", { ...backendProcessContextSchema, @@ -138,7 +138,7 @@ export class BackendReadinessTimeoutError extends Schema.TaggedErrorClass()( +export class BackendProcessBootstrapEncodeError extends Schema.TaggedError()( "BackendProcessBootstrapEncodeError", { ...backendProcessContextSchema, @@ -150,7 +150,7 @@ export class BackendProcessBootstrapEncodeError extends Schema.TaggedErrorClass< } } -export class BackendProcessSpawnError extends Schema.TaggedErrorClass()( +export class BackendProcessSpawnError extends Schema.TaggedError()( "BackendProcessSpawnError", { ...backendProcessContextSchema, @@ -162,7 +162,7 @@ export class BackendProcessSpawnError extends Schema.TaggedErrorClass()( +export class BackendProcessOutputReadError extends Schema.TaggedError()( "BackendProcessOutputReadError", { ...backendProcessContextSchema, @@ -176,7 +176,7 @@ export class BackendProcessOutputReadError extends Schema.TaggedErrorClass()( +export class BackendProcessOutputHandlingError extends Schema.TaggedError()( "BackendProcessOutputHandlingError", { ...backendProcessContextSchema, @@ -195,7 +195,7 @@ export type BackendProcessOutputError = | BackendProcessOutputReadError | BackendProcessOutputHandlingError; -export class BackendProcessExitStatusError extends Schema.TaggedErrorClass()( +export class BackendProcessExitStatusError extends Schema.TaggedError()( "BackendProcessExitStatusError", { ...backendProcessContextSchema, diff --git a/apps/desktop/src/backend/DesktopBackendPool.ts b/apps/desktop/src/backend/DesktopBackendPool.ts index 9b85d1bb2430..c49f6da440da 100644 --- a/apps/desktop/src/backend/DesktopBackendPool.ts +++ b/apps/desktop/src/backend/DesktopBackendPool.ts @@ -113,7 +113,7 @@ export type BackendInstanceSpec = DesktopBackendManager.BackendInstanceSpec; // Caller tried to register an id that's already in the pool. The pool // refuses overwrites so two independent orchestrators racing on the // same id surface as a typed failure instead of one silently winning. -export class DesktopBackendPoolInstanceAlreadyRegisteredError extends Schema.TaggedErrorClass()( +export class DesktopBackendPoolInstanceAlreadyRegisteredError extends Schema.TaggedError()( "DesktopBackendPoolInstanceAlreadyRegisteredError", { id: Schema.String, @@ -127,7 +127,7 @@ export class DesktopBackendPoolInstanceAlreadyRegisteredError extends Schema.Tag // Primary instance is registered for the pool's lifetime. Unregister is // a no-op for it today (no real callers), but if someone wires it up // later it's a clear bug rather than something to "handle". -export class DesktopBackendPoolCannotUnregisterPrimaryError extends Schema.TaggedErrorClass()( +export class DesktopBackendPoolCannotUnregisterPrimaryError extends Schema.TaggedError()( "DesktopBackendPoolCannotUnregisterPrimaryError", {}, ) { diff --git a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts index 201492f0e4c1..4bcbd4f8335a 100644 --- a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts +++ b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts @@ -11,7 +11,7 @@ import * as HttpClient from "effect/unstable/http/HttpClient"; import * as DesktopBackendPool from "./DesktopBackendPool.ts"; -export class DesktopLocalEnvironmentAuthBackendNotConfiguredError extends Schema.TaggedErrorClass()( +export class DesktopLocalEnvironmentAuthBackendNotConfiguredError extends Schema.TaggedError()( "DesktopLocalEnvironmentAuthBackendNotConfiguredError", {}, ) { @@ -20,7 +20,7 @@ export class DesktopLocalEnvironmentAuthBackendNotConfiguredError extends Schema } } -export class DesktopLocalEnvironmentAuthSessionBootstrapError extends Schema.TaggedErrorClass()( +export class DesktopLocalEnvironmentAuthSessionBootstrapError extends Schema.TaggedError()( "DesktopLocalEnvironmentAuthSessionBootstrapError", { cause: Schema.Defect() }, ) { diff --git a/apps/desktop/src/backend/DesktopNetworkInterfaces.ts b/apps/desktop/src/backend/DesktopNetworkInterfaces.ts index 43f634c44917..0643637b592d 100644 --- a/apps/desktop/src/backend/DesktopNetworkInterfaces.ts +++ b/apps/desktop/src/backend/DesktopNetworkInterfaces.ts @@ -20,7 +20,7 @@ export type NetworkInterfaces = Readonly< Record >; -export class DesktopNetworkInterfacesReadError extends Schema.TaggedErrorClass()( +export class DesktopNetworkInterfacesReadError extends Schema.TaggedError()( "DesktopNetworkInterfacesReadError", { platform: Schema.String, diff --git a/apps/desktop/src/backend/DesktopServerExposure.ts b/apps/desktop/src/backend/DesktopServerExposure.ts index f04d2af7b1f6..74e9854cc632 100644 --- a/apps/desktop/src/backend/DesktopServerExposure.ts +++ b/apps/desktop/src/backend/DesktopServerExposure.ts @@ -203,7 +203,7 @@ const resolveDesktopCoreAdvertisedEndpoints = ( return endpoints; }; -export class DesktopServerExposureNoNetworkAddressError extends Schema.TaggedErrorClass()( +export class DesktopServerExposureNoNetworkAddressError extends Schema.TaggedError()( "DesktopServerExposureNoNetworkAddressError", { port: Schema.Number, @@ -214,7 +214,7 @@ export class DesktopServerExposureNoNetworkAddressError extends Schema.TaggedErr } } -export class DesktopServerExposureModePersistenceError extends Schema.TaggedErrorClass()( +export class DesktopServerExposureModePersistenceError extends Schema.TaggedError()( "DesktopServerExposureModePersistenceError", { mode: DesktopServerExposureModeSchema, @@ -226,7 +226,7 @@ export class DesktopServerExposureModePersistenceError extends Schema.TaggedErro } } -export class DesktopTailscaleServePersistenceError extends Schema.TaggedErrorClass()( +export class DesktopTailscaleServePersistenceError extends Schema.TaggedError()( "DesktopTailscaleServePersistenceError", { enabled: Schema.Boolean, diff --git a/apps/desktop/src/electron/ElectronApp.ts b/apps/desktop/src/electron/ElectronApp.ts index 5a6f16ae89fd..305e3d66d023 100644 --- a/apps/desktop/src/electron/ElectronApp.ts +++ b/apps/desktop/src/electron/ElectronApp.ts @@ -14,7 +14,7 @@ export interface ElectronAppMetadata { readonly runningUnderArm64Translation: boolean; } -export class ElectronAppMetadataReadError extends Schema.TaggedErrorClass()( +export class ElectronAppMetadataReadError extends Schema.TaggedError()( "ElectronAppMetadataReadError", { property: Schema.Literals(["app-version", "app-path"]), @@ -26,7 +26,7 @@ export class ElectronAppMetadataReadError extends Schema.TaggedErrorClass()( +export class ElectronAppWhenReadyError extends Schema.TaggedError()( "ElectronAppWhenReadyError", { isPackaged: Schema.Boolean, diff --git a/apps/desktop/src/electron/ElectronDialog.ts b/apps/desktop/src/electron/ElectronDialog.ts index 4300d9ab0d39..3ac352814d49 100644 --- a/apps/desktop/src/electron/ElectronDialog.ts +++ b/apps/desktop/src/electron/ElectronDialog.ts @@ -6,7 +6,7 @@ import * as Schema from "effect/Schema"; import * as Electron from "electron"; -export class ElectronDialogPickFolderError extends Schema.TaggedErrorClass()( +export class ElectronDialogPickFolderError extends Schema.TaggedError()( "ElectronDialogPickFolderError", { ownerWindowId: Schema.NullOr(Schema.Number), @@ -21,7 +21,7 @@ export class ElectronDialogPickFolderError extends Schema.TaggedErrorClass()( +export class ElectronDialogPickFilesError extends Schema.TaggedError()( "ElectronDialogPickFilesError", { ownerWindowId: Schema.NullOr(Schema.Number), @@ -36,7 +36,7 @@ export class ElectronDialogPickFilesError extends Schema.TaggedErrorClass()( +export class ElectronDialogShowMessageBoxError extends Schema.TaggedError()( "ElectronDialogShowMessageBoxError", { type: Schema.NullOr(Schema.Literals(["none", "info", "error", "question", "warning"])), @@ -53,7 +53,7 @@ export class ElectronDialogShowMessageBoxError extends Schema.TaggedErrorClass()( +export class ElectronDialogShowErrorBoxError extends Schema.TaggedError()( "ElectronDialogShowErrorBoxError", { titleLength: Schema.Number, diff --git a/apps/desktop/src/electron/ElectronMenu.ts b/apps/desktop/src/electron/ElectronMenu.ts index b241619cd296..ddc7abef840c 100644 --- a/apps/desktop/src/electron/ElectronMenu.ts +++ b/apps/desktop/src/electron/ElectronMenu.ts @@ -30,7 +30,7 @@ const ElectronMenuOperation = Schema.Literals([ "show-context-menu", ]); -export class ElectronMenuOperationError extends Schema.TaggedErrorClass()( +export class ElectronMenuOperationError extends Schema.TaggedError()( "ElectronMenuOperationError", { operation: ElectronMenuOperation, diff --git a/apps/desktop/src/electron/ElectronProtocol.ts b/apps/desktop/src/electron/ElectronProtocol.ts index 11459c9ef7a8..198eca4e826e 100644 --- a/apps/desktop/src/electron/ElectronProtocol.ts +++ b/apps/desktop/src/electron/ElectronProtocol.ts @@ -24,7 +24,7 @@ export function getDesktopUrl(isDevelopment: boolean): string { return `${getDesktopOrigin(isDevelopment)}/`; } -export class ElectronProtocolRegistrationError extends Schema.TaggedErrorClass()( +export class ElectronProtocolRegistrationError extends Schema.TaggedError()( "ElectronProtocolRegistrationError", { scheme: Schema.String, @@ -36,7 +36,7 @@ export class ElectronProtocolRegistrationError extends Schema.TaggedErrorClass()( +export class ElectronProtocolUnregistrationError extends Schema.TaggedError()( "ElectronProtocolUnregistrationError", { scheme: Schema.String, diff --git a/apps/desktop/src/electron/ElectronSafeStorage.ts b/apps/desktop/src/electron/ElectronSafeStorage.ts index b9dab7105fb8..9b74d4dae9d9 100644 --- a/apps/desktop/src/electron/ElectronSafeStorage.ts +++ b/apps/desktop/src/electron/ElectronSafeStorage.ts @@ -11,7 +11,7 @@ const electronSafeStorageErrorFields = { cause: Schema.Defect(), }; -export class ElectronSafeStorageAvailabilityError extends Schema.TaggedErrorClass()( +export class ElectronSafeStorageAvailabilityError extends Schema.TaggedError()( "ElectronSafeStorageAvailabilityError", { ...electronSafeStorageErrorFields, @@ -22,7 +22,7 @@ export class ElectronSafeStorageAvailabilityError extends Schema.TaggedErrorClas } } -export class ElectronSafeStorageEncryptError extends Schema.TaggedErrorClass()( +export class ElectronSafeStorageEncryptError extends Schema.TaggedError()( "ElectronSafeStorageEncryptError", { ...electronSafeStorageErrorFields, @@ -33,7 +33,7 @@ export class ElectronSafeStorageEncryptError extends Schema.TaggedErrorClass()( +export class ElectronSafeStorageDecryptError extends Schema.TaggedError()( "ElectronSafeStorageDecryptError", { ...electronSafeStorageErrorFields, diff --git a/apps/desktop/src/electron/ElectronTheme.ts b/apps/desktop/src/electron/ElectronTheme.ts index ef47e3d0954f..dce84550c20f 100644 --- a/apps/desktop/src/electron/ElectronTheme.ts +++ b/apps/desktop/src/electron/ElectronTheme.ts @@ -7,7 +7,7 @@ import * as Scope from "effect/Scope"; import * as Electron from "electron"; -export class ElectronThemeSetSourceError extends Schema.TaggedErrorClass()( +export class ElectronThemeSetSourceError extends Schema.TaggedError()( "ElectronThemeSetSourceError", { source: DesktopThemeSchema, diff --git a/apps/desktop/src/electron/ElectronUpdater.ts b/apps/desktop/src/electron/ElectronUpdater.ts index 4157d29a9df8..31263bc4c42b 100644 --- a/apps/desktop/src/electron/ElectronUpdater.ts +++ b/apps/desktop/src/electron/ElectronUpdater.ts @@ -10,7 +10,7 @@ type AutoUpdater = typeof autoUpdater; export type ElectronUpdaterFeedUrl = Parameters[0]; -export class ElectronUpdaterCheckForUpdatesError extends Schema.TaggedErrorClass()( +export class ElectronUpdaterCheckForUpdatesError extends Schema.TaggedError()( "ElectronUpdaterCheckForUpdatesError", { channel: Schema.NullOr(Schema.String), @@ -22,7 +22,7 @@ export class ElectronUpdaterCheckForUpdatesError extends Schema.TaggedErrorClass } } -export class ElectronUpdaterDownloadUpdateError extends Schema.TaggedErrorClass()( +export class ElectronUpdaterDownloadUpdateError extends Schema.TaggedError()( "ElectronUpdaterDownloadUpdateError", { channel: Schema.NullOr(Schema.String), @@ -34,7 +34,7 @@ export class ElectronUpdaterDownloadUpdateError extends Schema.TaggedErrorClass< } } -export class ElectronUpdaterQuitAndInstallError extends Schema.TaggedErrorClass()( +export class ElectronUpdaterQuitAndInstallError extends Schema.TaggedError()( "ElectronUpdaterQuitAndInstallError", { channel: Schema.NullOr(Schema.String), diff --git a/apps/desktop/src/electron/ElectronWindow.ts b/apps/desktop/src/electron/ElectronWindow.ts index 5f6a9d34280b..0f1e9a0cbddd 100644 --- a/apps/desktop/src/electron/ElectronWindow.ts +++ b/apps/desktop/src/electron/ElectronWindow.ts @@ -41,7 +41,7 @@ const ElectronWindowOperation = Schema.Literals([ "destroy-window", ]); -export class ElectronWindowCreateError extends Schema.TaggedErrorClass()( +export class ElectronWindowCreateError extends Schema.TaggedError()( "ElectronWindowCreateError", { options: ElectronWindowCreateOptions, @@ -60,7 +60,7 @@ export class ElectronWindowCreateError extends Schema.TaggedErrorClass()( +export class ElectronWindowOperationError extends Schema.TaggedError()( "ElectronWindowOperationError", { operation: ElectronWindowOperation, diff --git a/apps/desktop/src/ipc/DesktopIpc.ts b/apps/desktop/src/ipc/DesktopIpc.ts index e948571cc628..be731062970d 100644 --- a/apps/desktop/src/ipc/DesktopIpc.ts +++ b/apps/desktop/src/ipc/DesktopIpc.ts @@ -24,7 +24,7 @@ export interface DesktopIpcMain { on(channel: string, listener: DesktopIpcSyncListener): void; } -export class DesktopIpcRegistrationError extends Schema.TaggedErrorClass()( +export class DesktopIpcRegistrationError extends Schema.TaggedError()( "DesktopIpcRegistrationError", { handlerKind: Schema.Literals(["invoke", "sync"]), @@ -37,7 +37,7 @@ export class DesktopIpcRegistrationError extends Schema.TaggedErrorClass()( +export class DesktopIpcUnregistrationError extends Schema.TaggedError()( "DesktopIpcUnregistrationError", { handlerKind: Schema.Literals(["invoke", "sync"]), diff --git a/apps/desktop/src/preview/BrowserSession.ts b/apps/desktop/src/preview/BrowserSession.ts index e11d25bbed77..daab930e151c 100644 --- a/apps/desktop/src/preview/BrowserSession.ts +++ b/apps/desktop/src/preview/BrowserSession.ts @@ -29,7 +29,7 @@ const ALLOWED_PREVIEW_PERMISSIONS: ReadonlySet = new Set([ // picker runs in the main window session, which is unaffected by this list. ]); -export class BrowserSessionPartitionDerivationError extends Schema.TaggedErrorClass()( +export class BrowserSessionPartitionDerivationError extends Schema.TaggedError()( "BrowserSessionPartitionDerivationError", { scope: Schema.String, @@ -41,7 +41,7 @@ export class BrowserSessionPartitionDerivationError extends Schema.TaggedErrorCl } } -export class BrowserSessionCreationError extends Schema.TaggedErrorClass()( +export class BrowserSessionCreationError extends Schema.TaggedError()( "BrowserSessionCreationError", { scope: Schema.String, @@ -54,7 +54,7 @@ export class BrowserSessionCreationError extends Schema.TaggedErrorClass()( +export class BrowserSessionStorageClearError extends Schema.TaggedError()( "BrowserSessionStorageClearError", { partition: Schema.String, @@ -66,7 +66,7 @@ export class BrowserSessionStorageClearError extends Schema.TaggedErrorClass()( +export class BrowserSessionCacheClearError extends Schema.TaggedError()( "BrowserSessionCacheClearError", { partition: Schema.String, diff --git a/apps/desktop/src/preview/Manager.ts b/apps/desktop/src/preview/Manager.ts index 0d90e0175fe3..0cbc5c265827 100644 --- a/apps/desktop/src/preview/Manager.ts +++ b/apps/desktop/src/preview/Manager.ts @@ -3760,7 +3760,7 @@ const makeNativeOperations = Effect.fn("PreviewManager.makeOperations")(function }; }); -export class PreviewTabNotFoundError extends Schema.TaggedErrorClass()( +export class PreviewTabNotFoundError extends Schema.TaggedError()( "PreviewTabNotFoundError", { tabId: Schema.String }, ) { @@ -3769,7 +3769,7 @@ export class PreviewTabNotFoundError extends Schema.TaggedErrorClass()( +export class PreviewWebContentsNotFoundError extends Schema.TaggedError()( "PreviewWebContentsNotFoundError", { tabId: Schema.String, webContentsId: Schema.Number }, ) { @@ -3778,7 +3778,7 @@ export class PreviewWebContentsNotFoundError extends Schema.TaggedErrorClass
()(
+export class PreviewWebviewNotInitializedError extends Schema.TaggedError()(
   "PreviewWebviewNotInitializedError",
   { tabId: Schema.String },
 ) {
@@ -3787,7 +3787,7 @@ export class PreviewWebviewNotInitializedError extends Schema.TaggedErrorClass

()( +export class PreviewMainWindowClosedError extends Schema.TaggedError()( "PreviewMainWindowClosedError", { tabId: Schema.String }, ) { @@ -3796,7 +3796,7 @@ export class PreviewMainWindowClosedError extends Schema.TaggedErrorClass()( +export class PreviewOperationError extends Schema.TaggedError()( "PreviewOperationError", { operation: Schema.String, @@ -3822,7 +3822,7 @@ export class PreviewOperationError extends Schema.TaggedErrorClass()( +export class PreviewArtifactPathOutsideDirectoryError extends Schema.TaggedError()( "PreviewArtifactPathOutsideDirectoryError", { artifactPath: Schema.String, @@ -3834,7 +3834,7 @@ export class PreviewArtifactPathOutsideDirectoryError extends Schema.TaggedError } } -export class PreviewArtifactImageLoadError extends Schema.TaggedErrorClass()( +export class PreviewArtifactImageLoadError extends Schema.TaggedError()( "PreviewArtifactImageLoadError", { artifactPath: Schema.String }, ) { @@ -3843,7 +3843,7 @@ export class PreviewArtifactImageLoadError extends Schema.TaggedErrorClass()( +export class PreviewAutomationDevToolsOpenError extends Schema.TaggedError()( "PreviewAutomationDevToolsOpenError", { webContentsId: Schema.Number }, ) { @@ -3852,7 +3852,7 @@ export class PreviewAutomationDevToolsOpenError extends Schema.TaggedErrorClass< } } -export class PreviewAutomationDebuggerAttachedError extends Schema.TaggedErrorClass()( +export class PreviewAutomationDebuggerAttachedError extends Schema.TaggedError()( "PreviewAutomationDebuggerAttachedError", { webContentsId: Schema.Number }, ) { @@ -3861,7 +3861,7 @@ export class PreviewAutomationDebuggerAttachedError extends Schema.TaggedErrorCl } } -export class PreviewAutomationEvaluationError extends Schema.TaggedErrorClass()( +export class PreviewAutomationEvaluationError extends Schema.TaggedError()( "PreviewAutomationEvaluationError", { tabId: Schema.String, @@ -3879,7 +3879,7 @@ export class PreviewAutomationEvaluationError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTargetNotFoundError extends Schema.TaggedError()( "PreviewAutomationTargetNotFoundError", { operation: Schema.String, @@ -3894,7 +3894,7 @@ export class PreviewAutomationTargetNotFoundError extends Schema.TaggedErrorClas } } -export class PreviewAutomationTargetNotEditableError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTargetNotEditableError extends Schema.TaggedError()( "PreviewAutomationTargetNotEditableError", { tabId: Schema.String, @@ -3908,7 +3908,7 @@ export class PreviewAutomationTargetNotEditableError extends Schema.TaggedErrorC } } -export class PreviewAutomationCoordinatesOutsideViewportError extends Schema.TaggedErrorClass()( +export class PreviewAutomationCoordinatesOutsideViewportError extends Schema.TaggedError()( "PreviewAutomationCoordinatesOutsideViewportError", { tabId: Schema.String, @@ -3923,7 +3923,7 @@ export class PreviewAutomationCoordinatesOutsideViewportError extends Schema.Tag } } -export class PreviewAutomationInvalidSelectorError extends Schema.TaggedErrorClass()( +export class PreviewAutomationInvalidSelectorError extends Schema.TaggedError()( "PreviewAutomationInvalidSelectorError", { operation: Schema.String, @@ -3956,7 +3956,7 @@ export class PreviewAutomationInvalidSelectorError extends Schema.TaggedErrorCla } } -export class PreviewAutomationResultTooLargeError extends Schema.TaggedErrorClass()( +export class PreviewAutomationResultTooLargeError extends Schema.TaggedError()( "PreviewAutomationResultTooLargeError", { tabId: Schema.String, @@ -3973,7 +3973,7 @@ export class PreviewAutomationResultTooLargeError extends Schema.TaggedErrorClas } } -export class PreviewAutomationTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTimeoutError extends Schema.TaggedError()( "PreviewAutomationTimeoutError", { tabId: Schema.String, @@ -3985,7 +3985,7 @@ export class PreviewAutomationTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationControlInterruptedError extends Schema.TaggedError()( "PreviewAutomationControlInterruptedError", { operation: Schema.String, diff --git a/apps/desktop/src/preview/PlaywrightInjectedRuntime.ts b/apps/desktop/src/preview/PlaywrightInjectedRuntime.ts index 6104532e68d0..c9b1d36621f1 100644 --- a/apps/desktop/src/preview/PlaywrightInjectedRuntime.ts +++ b/apps/desktop/src/preview/PlaywrightInjectedRuntime.ts @@ -17,7 +17,7 @@ const PLAYWRIGHT_SOURCE_EVALUATION_TIMEOUT_MS = 1_000; const PLAYWRIGHT_SDK_LANGUAGE = "javascript"; const PLAYWRIGHT_BROWSER_NAME = "chromium"; -export class PlaywrightPackageResolveError extends Schema.TaggedErrorClass()( +export class PlaywrightPackageResolveError extends Schema.TaggedError()( "PlaywrightPackageResolveError", { specifier: Schema.String, @@ -29,7 +29,7 @@ export class PlaywrightPackageResolveError extends Schema.TaggedErrorClass()( +export class PlaywrightCoreBundleReadError extends Schema.TaggedError()( "PlaywrightCoreBundleReadError", { bundlePath: Schema.String, @@ -41,7 +41,7 @@ export class PlaywrightCoreBundleReadError extends Schema.TaggedErrorClass()( +export class PlaywrightSourceMarkerNotFoundError extends Schema.TaggedError()( "PlaywrightSourceMarkerNotFoundError", { bundlePath: Schema.String, @@ -53,7 +53,7 @@ export class PlaywrightSourceMarkerNotFoundError extends Schema.TaggedErrorClass } } -export class PlaywrightSourceTerminatorNotFoundError extends Schema.TaggedErrorClass()( +export class PlaywrightSourceTerminatorNotFoundError extends Schema.TaggedError()( "PlaywrightSourceTerminatorNotFoundError", { bundlePath: Schema.String, @@ -65,7 +65,7 @@ export class PlaywrightSourceTerminatorNotFoundError extends Schema.TaggedErrorC } } -export class PlaywrightSourceEvaluationError extends Schema.TaggedErrorClass()( +export class PlaywrightSourceEvaluationError extends Schema.TaggedError()( "PlaywrightSourceEvaluationError", { bundlePath: Schema.String, @@ -78,7 +78,7 @@ export class PlaywrightSourceEvaluationError extends Schema.TaggedErrorClass()( +export class PlaywrightSourceValidationError extends Schema.TaggedError()( "PlaywrightSourceValidationError", { bundlePath: Schema.String, @@ -96,7 +96,7 @@ export class PlaywrightSourceValidationError extends Schema.TaggedErrorClass()( +export class PlaywrightOptionsEncodeError extends Schema.TaggedError()( "PlaywrightOptionsEncodeError", { sdkLanguage: Schema.String, diff --git a/apps/desktop/src/settings/DesktopAppSettings.ts b/apps/desktop/src/settings/DesktopAppSettings.ts index aefc67525531..a49452b9a72b 100644 --- a/apps/desktop/src/settings/DesktopAppSettings.ts +++ b/apps/desktop/src/settings/DesktopAppSettings.ts @@ -134,7 +134,7 @@ const DesktopSettingsWriteOperation = Schema.Literals([ ]); type DesktopSettingsWriteOperation = typeof DesktopSettingsWriteOperation.Type; -export class DesktopSettingsWriteError extends Schema.TaggedErrorClass()( +export class DesktopSettingsWriteError extends Schema.TaggedError()( "DesktopSettingsWriteError", { operation: DesktopSettingsWriteOperation, diff --git a/apps/desktop/src/settings/DesktopClientSettings.ts b/apps/desktop/src/settings/DesktopClientSettings.ts index 4ff091e27a27..c2b017759f65 100644 --- a/apps/desktop/src/settings/DesktopClientSettings.ts +++ b/apps/desktop/src/settings/DesktopClientSettings.ts @@ -39,7 +39,7 @@ const DesktopClientSettingsWriteOperation = Schema.Literals([ "replace-settings-file", ]); -export class DesktopClientSettingsWriteError extends Schema.TaggedErrorClass()( +export class DesktopClientSettingsWriteError extends Schema.TaggedError()( "DesktopClientSettingsWriteError", { operation: DesktopClientSettingsWriteOperation, diff --git a/apps/desktop/src/settings/DesktopSavedEnvironments.ts b/apps/desktop/src/settings/DesktopSavedEnvironments.ts index bdda7f9c7386..06343e7e7007 100644 --- a/apps/desktop/src/settings/DesktopSavedEnvironments.ts +++ b/apps/desktop/src/settings/DesktopSavedEnvironments.ts @@ -84,7 +84,7 @@ const DesktopSavedEnvironmentSecretProtectionOperation = Schema.Literals([ "decrypt-secret", ]); -export class DesktopSavedEnvironmentsWriteError extends Schema.TaggedErrorClass()( +export class DesktopSavedEnvironmentsWriteError extends Schema.TaggedError()( "DesktopSavedEnvironmentsWriteError", { operation: DesktopSavedEnvironmentsWriteOperation, @@ -97,7 +97,7 @@ export class DesktopSavedEnvironmentsWriteError extends Schema.TaggedErrorClass< } } -export class DesktopSavedEnvironmentsReadError extends Schema.TaggedErrorClass()( +export class DesktopSavedEnvironmentsReadError extends Schema.TaggedError()( "DesktopSavedEnvironmentsReadError", { registryPath: Schema.String, @@ -109,7 +109,7 @@ export class DesktopSavedEnvironmentsReadError extends Schema.TaggedErrorClass()( +export class DesktopSavedEnvironmentsDocumentDecodeError extends Schema.TaggedError()( "DesktopSavedEnvironmentsDocumentDecodeError", { registryPath: Schema.String, @@ -121,7 +121,7 @@ export class DesktopSavedEnvironmentsDocumentDecodeError extends Schema.TaggedEr } } -export class DesktopSavedEnvironmentSecretDecodeError extends Schema.TaggedErrorClass()( +export class DesktopSavedEnvironmentSecretDecodeError extends Schema.TaggedError()( "DesktopSavedEnvironmentSecretDecodeError", { environmentId: Schema.String, @@ -135,7 +135,7 @@ export class DesktopSavedEnvironmentSecretDecodeError extends Schema.TaggedError } } -export class DesktopSavedEnvironmentSecretProtectionError extends Schema.TaggedErrorClass()( +export class DesktopSavedEnvironmentSecretProtectionError extends Schema.TaggedError()( "DesktopSavedEnvironmentSecretProtectionError", { operation: DesktopSavedEnvironmentSecretProtectionOperation, diff --git a/apps/desktop/src/shell/DesktopShellEnvironment.ts b/apps/desktop/src/shell/DesktopShellEnvironment.ts index e065bf55d046..f61dd89ebdd3 100644 --- a/apps/desktop/src/shell/DesktopShellEnvironment.ts +++ b/apps/desktop/src/shell/DesktopShellEnvironment.ts @@ -36,7 +36,7 @@ const desktopShellEnvironmentCommandFields = { argumentCount: Schema.Number, }; -export class DesktopShellEnvironmentCommandError extends Schema.TaggedErrorClass()( +export class DesktopShellEnvironmentCommandError extends Schema.TaggedError()( "DesktopShellEnvironmentCommandError", { ...desktopShellEnvironmentCommandFields, @@ -48,7 +48,7 @@ export class DesktopShellEnvironmentCommandError extends Schema.TaggedErrorClass } } -export class DesktopShellEnvironmentCommandTimeoutError extends Schema.TaggedErrorClass()( +export class DesktopShellEnvironmentCommandTimeoutError extends Schema.TaggedError()( "DesktopShellEnvironmentCommandTimeoutError", { ...desktopShellEnvironmentCommandFields, diff --git a/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts b/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts index aa25d8135c7a..7033d5ca8343 100644 --- a/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts +++ b/apps/desktop/src/ssh/DesktopSshPasswordPrompts.ts @@ -41,7 +41,7 @@ const DesktopSshPromptPresentationOperation = Schema.Literals([ ]); type DesktopSshPromptPresentationOperation = typeof DesktopSshPromptPresentationOperation.Type; -export class DesktopSshPromptRequestIdGenerationError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptRequestIdGenerationError extends Schema.TaggedError()( "DesktopSshPromptRequestIdGenerationError", { destination: Schema.String, @@ -53,7 +53,7 @@ export class DesktopSshPromptRequestIdGenerationError extends Schema.TaggedError } } -export class DesktopSshPromptWindowUnavailableError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptWindowUnavailableError extends Schema.TaggedError()( "DesktopSshPromptWindowUnavailableError", { destination: Schema.String, @@ -67,7 +67,7 @@ export class DesktopSshPromptWindowUnavailableError extends Schema.TaggedErrorCl } } -export class DesktopSshPromptPresentationError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptPresentationError extends Schema.TaggedError()( "DesktopSshPromptPresentationError", { requestId: Schema.NullOr(Schema.String), @@ -81,7 +81,7 @@ export class DesktopSshPromptPresentationError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptTimedOutError extends Schema.TaggedError()( "DesktopSshPromptTimedOutError", { requestId: Schema.String, @@ -93,7 +93,7 @@ export class DesktopSshPromptTimedOutError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptCancelledError extends Schema.TaggedError()( "DesktopSshPromptCancelledError", { requestId: Schema.String, @@ -105,7 +105,7 @@ export class DesktopSshPromptCancelledError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptWindowClosedError extends Schema.TaggedError()( "DesktopSshPromptWindowClosedError", { requestId: Schema.String, @@ -117,7 +117,7 @@ export class DesktopSshPromptWindowClosedError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptServiceStoppedError extends Schema.TaggedError()( "DesktopSshPromptServiceStoppedError", { requestId: Schema.String, @@ -129,7 +129,7 @@ export class DesktopSshPromptServiceStoppedError extends Schema.TaggedErrorClass } } -export class DesktopSshPromptInvalidRequestIdError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptInvalidRequestIdError extends Schema.TaggedError()( "DesktopSshPromptInvalidRequestIdError", { requestId: Schema.String, @@ -140,7 +140,7 @@ export class DesktopSshPromptInvalidRequestIdError extends Schema.TaggedErrorCla } } -export class DesktopSshPromptExpiredError extends Schema.TaggedErrorClass()( +export class DesktopSshPromptExpiredError extends Schema.TaggedError()( "DesktopSshPromptExpiredError", { requestId: Schema.String, diff --git a/apps/desktop/src/updates/DesktopUpdates.ts b/apps/desktop/src/updates/DesktopUpdates.ts index 483ace0ff439..6546a67b68ca 100644 --- a/apps/desktop/src/updates/DesktopUpdates.ts +++ b/apps/desktop/src/updates/DesktopUpdates.ts @@ -67,7 +67,7 @@ const decodeDownloadProgressInfo = Schema.decodeUnknownEffect(DownloadProgressIn const currentIsoTimestamp = DateTime.now.pipe(Effect.map(DateTime.formatIso)); -export class DesktopUpdateActionInProgressError extends Schema.TaggedErrorClass()( +export class DesktopUpdateActionInProgressError extends Schema.TaggedError()( "DesktopUpdateActionInProgressError", { action: Schema.Literals(["check", "download", "install", "channel"]), @@ -79,7 +79,7 @@ export class DesktopUpdateActionInProgressError extends Schema.TaggedErrorClass< } } -export class DesktopUpdateChannelPersistenceError extends Schema.TaggedErrorClass()( +export class DesktopUpdateChannelPersistenceError extends Schema.TaggedError()( "DesktopUpdateChannelPersistenceError", { channel: DesktopUpdateChannelSchema, @@ -91,7 +91,7 @@ export class DesktopUpdateChannelPersistenceError extends Schema.TaggedErrorClas } } -export class DesktopUpdatePollerError extends Schema.TaggedErrorClass()( +export class DesktopUpdatePollerError extends Schema.TaggedError()( "DesktopUpdatePollerError", { poller: Schema.Literals(["startup", "poll"]), @@ -103,7 +103,7 @@ export class DesktopUpdatePollerError extends Schema.TaggedErrorClass()( +export class DesktopUpdateEventHandlingError extends Schema.TaggedError()( "DesktopUpdateEventHandlingError", { event: Schema.Literals(["update-available", "download-progress", "update-downloaded"]), @@ -115,7 +115,7 @@ export class DesktopUpdateEventHandlingError extends Schema.TaggedErrorClass()( +export class DesktopUpdaterReportedError extends Schema.TaggedError()( "DesktopUpdaterReportedError", { operation: Schema.Literals(["check", "download", "install", "channel", "background"]), @@ -127,7 +127,7 @@ export class DesktopUpdaterReportedError extends Schema.TaggedErrorClass()( +export class DesktopUpdateUnexpectedActionError extends Schema.TaggedError()( "DesktopUpdateUnexpectedActionError", { action: Schema.Literals(["download", "install"]), diff --git a/apps/desktop/src/window/DesktopApplicationMenu.ts b/apps/desktop/src/window/DesktopApplicationMenu.ts index 66244534debf..ee627fee799f 100644 --- a/apps/desktop/src/window/DesktopApplicationMenu.ts +++ b/apps/desktop/src/window/DesktopApplicationMenu.ts @@ -14,7 +14,7 @@ import * as DesktopEnvironment from "../app/DesktopEnvironment.ts"; import * as DesktopUpdates from "../updates/DesktopUpdates.ts"; import * as DesktopWindow from "./DesktopWindow.ts"; -export class DesktopApplicationMenuActionError extends Schema.TaggedErrorClass()( +export class DesktopApplicationMenuActionError extends Schema.TaggedError()( "DesktopApplicationMenuActionError", { action: Schema.String, diff --git a/apps/desktop/src/wsl/DesktopWslEnvironment.ts b/apps/desktop/src/wsl/DesktopWslEnvironment.ts index 164117727eaa..a04f556acfa2 100644 --- a/apps/desktop/src/wsl/DesktopWslEnvironment.ts +++ b/apps/desktop/src/wsl/DesktopWslEnvironment.ts @@ -44,7 +44,7 @@ export type EnsureWslNodePtyResult = readonly retryLimit?: number; }; -export class DesktopWslDistroListError extends Schema.TaggedErrorClass()( +export class DesktopWslDistroListError extends Schema.TaggedError()( "DesktopWslDistroListError", { reason: Schema.String }, ) { diff --git a/apps/desktop/src/wsl/DesktopWslServerTree.ts b/apps/desktop/src/wsl/DesktopWslServerTree.ts index 0b87f7bf1fe0..612aeefd4add 100644 --- a/apps/desktop/src/wsl/DesktopWslServerTree.ts +++ b/apps/desktop/src/wsl/DesktopWslServerTree.ts @@ -32,7 +32,7 @@ const Marker = Schema.Struct({ version: Schema.String }); const decodeMarker = Schema.decodeUnknownEffect(Schema.fromJsonString(Marker)); const encodeMarker = Schema.encodeEffect(Schema.fromJsonString(Marker)); -export class DesktopWslServerTreeExtractError extends Schema.TaggedErrorClass()( +export class DesktopWslServerTreeExtractError extends Schema.TaggedError()( "DesktopWslServerTreeExtractError", { targetDir: Schema.String, diff --git a/apps/mobile/package.json b/apps/mobile/package.json index de53a37c995b..afff7c6afc62 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -101,8 +101,8 @@ "expo-web-browser": "~56.0.5", "expo-widgets": "~56.0.19", "punycode": "^2.3.1", - "react": "19.2.3", - "react-dom": "19.2.3", + "react": "19.2.8", + "react-dom": "19.2.8", "react-native": "0.85.3", "react-native-gesture-handler": "~2.31.1", "react-native-image-viewing": "^0.2.2", diff --git a/apps/mobile/src/connection/migration.ts b/apps/mobile/src/connection/migration.ts index 6f324c9ff15b..3df01fe7ca00 100644 --- a/apps/mobile/src/connection/migration.ts +++ b/apps/mobile/src/connection/migration.ts @@ -33,7 +33,7 @@ const LegacyConnectionDocument = Schema.Struct({ }); const decodeLegacyConnectionDocument = Schema.decodeUnknownEffect(LegacyConnectionDocument); -export class LegacyConnectionMigrationError extends Schema.TaggedErrorClass()( +export class LegacyConnectionMigrationError extends Schema.TaggedError()( "LegacyConnectionMigrationError", { message: Schema.String, diff --git a/apps/mobile/src/features/agent-awareness/notificationPermissions.ts b/apps/mobile/src/features/agent-awareness/notificationPermissions.ts index dc275774a500..423d5c1ba721 100644 --- a/apps/mobile/src/features/agent-awareness/notificationPermissions.ts +++ b/apps/mobile/src/features/agent-awareness/notificationPermissions.ts @@ -8,7 +8,7 @@ export type NotificationPermissionResult = | { readonly type: "granted" } | { readonly type: "denied"; readonly canAskAgain: boolean }; -export class NotificationPermissionReadError extends Schema.TaggedErrorClass()( +export class NotificationPermissionReadError extends Schema.TaggedError()( "NotificationPermissionReadError", { cause: Schema.Defect(), @@ -19,7 +19,7 @@ export class NotificationPermissionReadError extends Schema.TaggedErrorClass()( +export class NotificationPermissionRequestError extends Schema.TaggedError()( "NotificationPermissionRequestError", { cause: Schema.Defect(), diff --git a/apps/mobile/src/features/agent-awareness/notificationResponseConsumer.ts b/apps/mobile/src/features/agent-awareness/notificationResponseConsumer.ts index be6bfa820fa3..f467bdd6b719 100644 --- a/apps/mobile/src/features/agent-awareness/notificationResponseConsumer.ts +++ b/apps/mobile/src/features/agent-awareness/notificationResponseConsumer.ts @@ -1,7 +1,7 @@ import type { NotificationResponse } from "expo-notifications"; import * as Schema from "effect/Schema"; -export class NotificationNavigationError extends Schema.TaggedErrorClass()( +export class NotificationNavigationError extends Schema.TaggedError()( "NotificationNavigationError", { operation: Schema.Literals(["read", "route", "clear"]), diff --git a/apps/mobile/src/features/agent-awareness/remoteRegistration.ts b/apps/mobile/src/features/agent-awareness/remoteRegistration.ts index b0f77d7704b5..2b345e26bfb5 100644 --- a/apps/mobile/src/features/agent-awareness/remoteRegistration.ts +++ b/apps/mobile/src/features/agent-awareness/remoteRegistration.ts @@ -54,7 +54,7 @@ const AgentAwarenessOperation = Schema.Literals([ "prime-live-activity", ]); -export class AgentAwarenessOperationError extends Schema.TaggedErrorClass()( +export class AgentAwarenessOperationError extends Schema.TaggedError()( "AgentAwarenessOperationError", { operation: AgentAwarenessOperation, diff --git a/apps/mobile/src/features/cloud/managedRelayTokenStore.ts b/apps/mobile/src/features/cloud/managedRelayTokenStore.ts index 0730f277f3c2..e88b90ac1c0e 100644 --- a/apps/mobile/src/features/cloud/managedRelayTokenStore.ts +++ b/apps/mobile/src/features/cloud/managedRelayTokenStore.ts @@ -30,7 +30,7 @@ const decodeManagedRelayAccessTokenCache = Schema.decodeUnknownEffect( ); const encodeManagedRelayAccessTokenCache = Schema.encodeEffect(ManagedRelayAccessTokenCacheSchema); -export class ManagedRelayTokenStoreError extends Schema.TaggedErrorClass()( +export class ManagedRelayTokenStoreError extends Schema.TaggedError()( "ManagedRelayTokenStoreError", { operation: Schema.Literals(["read", "decode", "encode", "write", "clear"]), diff --git a/apps/mobile/src/features/cloud/publicConfig.ts b/apps/mobile/src/features/cloud/publicConfig.ts index 93a78fa4f44e..a91a8024d485 100644 --- a/apps/mobile/src/features/cloud/publicConfig.ts +++ b/apps/mobile/src/features/cloud/publicConfig.ts @@ -3,7 +3,7 @@ import { relayClerkTokenOptions } from "@t3tools/shared/relayAuth"; import { normalizeSecureRelayUrl } from "@t3tools/shared/relayUrl"; import * as Schema from "effect/Schema"; -export class CloudPublicConfigMissingError extends Schema.TaggedErrorClass()( +export class CloudPublicConfigMissingError extends Schema.TaggedError()( "CloudPublicConfigMissingError", { key: Schema.Literal("T3CODE_CLERK_JWT_TEMPLATE"), diff --git a/apps/mobile/src/features/connection/pairing.ts b/apps/mobile/src/features/connection/pairing.ts index 569d00cbdd36..ee9e4b9ec8f3 100644 --- a/apps/mobile/src/features/connection/pairing.ts +++ b/apps/mobile/src/features/connection/pairing.ts @@ -18,7 +18,7 @@ function isIpLiteral(host: string): boolean { } } -export class PairingQrPayloadEmptyError extends Schema.TaggedErrorClass()( +export class PairingQrPayloadEmptyError extends Schema.TaggedError()( "PairingQrPayloadEmptyError", {}, ) { diff --git a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts index 14158e61c7d6..3bd9a069651c 100644 --- a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts +++ b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts @@ -16,7 +16,7 @@ import type { NativeReviewDiffRow, NativeReviewDiffToken } from "./nativeReviewD export type NativeReviewDiffHighlightScheme = "light" | "dark"; export type NativeReviewDiffHighlightEngine = "native" | "javascript"; -export class NativeReviewDiffHighlighterUnavailableError extends Schema.TaggedErrorClass()( +export class NativeReviewDiffHighlighterUnavailableError extends Schema.TaggedError()( "NativeReviewDiffHighlighterUnavailableError", {}, ) { @@ -29,7 +29,7 @@ export const isNativeReviewDiffHighlighterUnavailableError = Schema.is( NativeReviewDiffHighlighterUnavailableError, ); -export class NativeReviewDiffHighlighterInitializationError extends Schema.TaggedErrorClass()( +export class NativeReviewDiffHighlighterInitializationError extends Schema.TaggedError()( "NativeReviewDiffHighlighterInitializationError", { requestedEngine: Schema.Literals(["native", "javascript"]), diff --git a/apps/mobile/src/features/review/reviewHighlighterState.ts b/apps/mobile/src/features/review/reviewHighlighterState.ts index 51b20bb07ff6..9b9e6399d4b4 100644 --- a/apps/mobile/src/features/review/reviewHighlighterState.ts +++ b/apps/mobile/src/features/review/reviewHighlighterState.ts @@ -13,7 +13,7 @@ import { export type ReviewHighlighterStatus = "idle" | "initializing" | "ready" | "error"; -export class ReviewHighlighterManagerError extends Schema.TaggedErrorClass()( +export class ReviewHighlighterManagerError extends Schema.TaggedError()( "ReviewHighlighterManagerError", { operation: Schema.Literals(["prepare", "prepare-languages", "resolve-engine"]), diff --git a/apps/mobile/src/features/review/shikiReviewHighlighter.ts b/apps/mobile/src/features/review/shikiReviewHighlighter.ts index 008a07619490..59cd7c780d2a 100644 --- a/apps/mobile/src/features/review/shikiReviewHighlighter.ts +++ b/apps/mobile/src/features/review/shikiReviewHighlighter.ts @@ -23,7 +23,7 @@ import { applyDiffRangesToTokens, computeWordAltDiffRanges } from "./reviewWordD export type ReviewDiffTheme = "light" | "dark"; export type { ReviewHighlighterEngine }; -export class ReviewHighlighterEngineInitializationError extends Schema.TaggedErrorClass()( +export class ReviewHighlighterEngineInitializationError extends Schema.TaggedError()( "ReviewHighlighterEngineInitializationError", { preferredEngine: Schema.Literals(["native", "javascript"]), diff --git a/apps/mobile/src/features/sharing/incoming-share-storage.ts b/apps/mobile/src/features/sharing/incoming-share-storage.ts index 8364b4c98a45..58446998e081 100644 --- a/apps/mobile/src/features/sharing/incoming-share-storage.ts +++ b/apps/mobile/src/features/sharing/incoming-share-storage.ts @@ -4,7 +4,7 @@ import { decodeIncomingShareDraft, type IncomingShareDraft } from "./incoming-sh const INCOMING_SHARE_DIRECTORY = "incoming-shares"; -export class IncomingShareStorageError extends Schema.TaggedErrorClass()( +export class IncomingShareStorageError extends Schema.TaggedError()( "IncomingShareStorageError", { operation: Schema.Literals(["load", "write", "remove"]), diff --git a/apps/mobile/src/features/threads/projectThreadCreationValidation.ts b/apps/mobile/src/features/threads/projectThreadCreationValidation.ts index f2c98bdfb1b4..13b1959900e4 100644 --- a/apps/mobile/src/features/threads/projectThreadCreationValidation.ts +++ b/apps/mobile/src/features/threads/projectThreadCreationValidation.ts @@ -1,7 +1,7 @@ import { EnvironmentId, ProjectId } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -export class ProjectThreadTaskRequiredError extends Schema.TaggedErrorClass()( +export class ProjectThreadTaskRequiredError extends Schema.TaggedError()( "ProjectThreadTaskRequiredError", { environmentId: EnvironmentId, @@ -14,7 +14,7 @@ export class ProjectThreadTaskRequiredError extends Schema.TaggedErrorClass()( +export class ProjectThreadBaseBranchRequiredError extends Schema.TaggedError()( "ProjectThreadBaseBranchRequiredError", { environmentId: EnvironmentId, diff --git a/apps/mobile/src/lib/copyTextWithHaptic.ts b/apps/mobile/src/lib/copyTextWithHaptic.ts index 1cc8c94eef7a..6c2de3d43357 100644 --- a/apps/mobile/src/lib/copyTextWithHaptic.ts +++ b/apps/mobile/src/lib/copyTextWithHaptic.ts @@ -2,7 +2,7 @@ import * as Schema from "effect/Schema"; import * as Clipboard from "expo-clipboard"; import * as Haptics from "expo-haptics"; -export class CopyTextClipboardWriteError extends Schema.TaggedErrorClass()( +export class CopyTextClipboardWriteError extends Schema.TaggedError()( "CopyTextClipboardWriteError", { target: Schema.String, @@ -14,7 +14,7 @@ export class CopyTextClipboardWriteError extends Schema.TaggedErrorClass()( +export class CopyTextHapticFeedbackError extends Schema.TaggedError()( "CopyTextHapticFeedbackError", { target: Schema.String, diff --git a/apps/mobile/src/lib/openExternalUrl.ts b/apps/mobile/src/lib/openExternalUrl.ts index 10e6378bc000..0eea89d79d12 100644 --- a/apps/mobile/src/lib/openExternalUrl.ts +++ b/apps/mobile/src/lib/openExternalUrl.ts @@ -5,7 +5,7 @@ const ExternalUrlTarget = Schema.Literals(["file-preview", "markdown-link", "pul export type ExternalUrlTarget = typeof ExternalUrlTarget.Type; -export class ExternalUrlOpenError extends Schema.TaggedErrorClass()( +export class ExternalUrlOpenError extends Schema.TaggedError()( "ExternalUrlOpenError", { target: ExternalUrlTarget, diff --git a/apps/mobile/src/native/nativeViewResolutionError.ts b/apps/mobile/src/native/nativeViewResolutionError.ts index bfcf8351a66c..41697cccec13 100644 --- a/apps/mobile/src/native/nativeViewResolutionError.ts +++ b/apps/mobile/src/native/nativeViewResolutionError.ts @@ -1,6 +1,6 @@ import * as Schema from "effect/Schema"; -export class NativeViewResolutionError extends Schema.TaggedErrorClass()( +export class NativeViewResolutionError extends Schema.TaggedError()( "NativeViewResolutionError", { nativeModuleName: Schema.String, diff --git a/apps/mobile/src/persistence/mobile-database.ts b/apps/mobile/src/persistence/mobile-database.ts index 3d50a2dbc559..87c6c5706f2c 100644 --- a/apps/mobile/src/persistence/mobile-database.ts +++ b/apps/mobile/src/persistence/mobile-database.ts @@ -54,7 +54,7 @@ const MobileDatabaseOperation = Schema.Literals([ "save-preferences", ]); -export class MobileDatabaseError extends Schema.TaggedErrorClass()( +export class MobileDatabaseError extends Schema.TaggedError()( "MobileDatabaseError", { operation: MobileDatabaseOperation, diff --git a/apps/mobile/src/persistence/mobile-preferences.ts b/apps/mobile/src/persistence/mobile-preferences.ts index dfaeab9cd6ba..17f8ba6007f3 100644 --- a/apps/mobile/src/persistence/mobile-preferences.ts +++ b/apps/mobile/src/persistence/mobile-preferences.ts @@ -44,7 +44,7 @@ export interface Preferences { readonly planModeEnabled?: boolean; } -export class MobilePreferencesLoadError extends Schema.TaggedErrorClass()( +export class MobilePreferencesLoadError extends Schema.TaggedError()( "MobilePreferencesLoadError", { cause: Schema.Defect() }, ) { @@ -53,7 +53,7 @@ export class MobilePreferencesLoadError extends Schema.TaggedErrorClass()( +export class MobilePreferencesSaveError extends Schema.TaggedError()( "MobilePreferencesSaveError", { cause: Schema.Defect() }, ) { diff --git a/apps/mobile/src/persistence/mobile-secure-storage.ts b/apps/mobile/src/persistence/mobile-secure-storage.ts index 0ab7c9e4d960..44ad2900d89b 100644 --- a/apps/mobile/src/persistence/mobile-secure-storage.ts +++ b/apps/mobile/src/persistence/mobile-secure-storage.ts @@ -6,7 +6,7 @@ import * as SecureStore from "expo-secure-store"; const MobileSecureStorageOperation = Schema.Literals(["read", "write", "delete"]); -export class MobileSecureStorageError extends Schema.TaggedErrorClass()( +export class MobileSecureStorageError extends Schema.TaggedError()( "MobileSecureStorageError", { operation: MobileSecureStorageOperation, diff --git a/apps/mobile/src/persistence/mobile-storage.ts b/apps/mobile/src/persistence/mobile-storage.ts index 266e8c1a9a8f..3a8dd2d97b8f 100644 --- a/apps/mobile/src/persistence/mobile-storage.ts +++ b/apps/mobile/src/persistence/mobile-storage.ts @@ -18,7 +18,7 @@ const AGENT_AWARENESS_DEVICE_ID_KEY = "t3code.agent-awareness.device-id"; const AGENT_AWARENESS_REGISTRATION_KEY = "t3code.agent-awareness.registration"; const RECENT_THREAD_SHORTCUTS_KEY = "t3code.recent-thread-shortcuts"; -export class MobileStorageDecodeError extends Schema.TaggedErrorClass()( +export class MobileStorageDecodeError extends Schema.TaggedError()( "MobileStorageDecodeError", { key: Schema.String, @@ -30,7 +30,7 @@ export class MobileStorageDecodeError extends Schema.TaggedErrorClass()( +export class MobileStorageEncodeError extends Schema.TaggedError()( "MobileStorageEncodeError", { key: Schema.String, @@ -42,7 +42,7 @@ export class MobileStorageEncodeError extends Schema.TaggedErrorClass()( +export class MobileDeviceIdGenerationError extends Schema.TaggedError()( "MobileDeviceIdGenerationError", { cause: Schema.Defect() }, ) { diff --git a/apps/mobile/src/state/thread-outbox-manager.ts b/apps/mobile/src/state/thread-outbox-manager.ts index f6a20ccffc2a..414bea07c6a5 100644 --- a/apps/mobile/src/state/thread-outbox-manager.ts +++ b/apps/mobile/src/state/thread-outbox-manager.ts @@ -9,7 +9,7 @@ import { } from "./thread-outbox-model"; import type { ThreadOutboxStorage } from "./thread-outbox-storage"; -export class ThreadOutboxManagerError extends Schema.TaggedErrorClass()( +export class ThreadOutboxManagerError extends Schema.TaggedError()( "ThreadOutboxManagerError", { operation: Schema.Literals([ diff --git a/apps/mobile/src/state/thread-outbox-storage.ts b/apps/mobile/src/state/thread-outbox-storage.ts index ab0853f7dee5..6dfa19f36d61 100644 --- a/apps/mobile/src/state/thread-outbox-storage.ts +++ b/apps/mobile/src/state/thread-outbox-storage.ts @@ -28,7 +28,7 @@ export async function flushThreadOutboxWrites(): Promise { } } -export class ThreadOutboxStorageError extends Schema.TaggedErrorClass()( +export class ThreadOutboxStorageError extends Schema.TaggedError()( "ThreadOutboxStorageError", { operation: Schema.Literals(["load", "read-message", "write", "remove"]), diff --git a/apps/mobile/src/state/use-composer-drafts.ts b/apps/mobile/src/state/use-composer-drafts.ts index 7dbea23596c7..05c2c9cdad6d 100644 --- a/apps/mobile/src/state/use-composer-drafts.ts +++ b/apps/mobile/src/state/use-composer-drafts.ts @@ -24,7 +24,7 @@ const COMPOSER_DRAFTS_DIRECTORY = "composer-drafts"; const COMPOSER_DRAFTS_FILE = "drafts.json"; const PERSIST_DEBOUNCE_MS = 200; -export class ComposerDraftPersistenceError extends Schema.TaggedErrorClass()( +export class ComposerDraftPersistenceError extends Schema.TaggedError()( "ComposerDraftPersistenceError", { operation: Schema.Literals(["open", "read", "decode", "encode", "write", "hydrate"]), diff --git a/apps/server/integration/NetworkTransferMeasurement.integration.ts b/apps/server/integration/NetworkTransferMeasurement.integration.ts index 75714d1519e2..6fbb3027225e 100644 --- a/apps/server/integration/NetworkTransferMeasurement.integration.ts +++ b/apps/server/integration/NetworkTransferMeasurement.integration.ts @@ -10,7 +10,7 @@ import * as Schema from "effect/Schema"; import { RpcClient, RpcSerialization } from "effect/unstable/rpc"; import * as Socket from "effect/unstable/socket/Socket"; -export class TransferHttpRequestError extends Schema.TaggedErrorClass()( +export class TransferHttpRequestError extends Schema.TaggedError()( "TransferHttpRequestError", { url: Schema.String, diff --git a/apps/server/integration/OrchestrationEngineHarness.integration.ts b/apps/server/integration/OrchestrationEngineHarness.integration.ts index 71ef59a0910c..aa311519f328 100644 --- a/apps/server/integration/OrchestrationEngineHarness.integration.ts +++ b/apps/server/integration/OrchestrationEngineHarness.integration.ts @@ -117,12 +117,9 @@ export function gitShowFileAtRef(cwd: string, ref: string, filePath: string): st return runGit(cwd, ["show", `${ref}:${filePath}`]); } -class WaitForTimeoutError extends Schema.TaggedErrorClass()( - "WaitForTimeoutError", - { - description: Schema.String, - }, -) {} +class WaitForTimeoutError extends Schema.TaggedError()("WaitForTimeoutError", { + description: Schema.String, +}) {} function waitFor( read: Effect.Effect, @@ -161,7 +158,7 @@ function waitFor( ); } -class OrchestrationHarnessRuntimeError extends Schema.TaggedErrorClass()( +class OrchestrationHarnessRuntimeError extends Schema.TaggedError()( "OrchestrationHarnessRuntimeError", { operation: Schema.String, diff --git a/apps/server/integration/orchestrationEngine.integration.test.ts b/apps/server/integration/orchestrationEngine.integration.test.ts index ccfb9c467421..a577fc59ebc2 100644 --- a/apps/server/integration/orchestrationEngine.integration.test.ts +++ b/apps/server/integration/orchestrationEngine.integration.test.ts @@ -54,7 +54,7 @@ function nowIso() { return "2026-05-01T00:00:00.000Z"; } -class IntegrationWaitTimeoutError extends Schema.TaggedErrorClass()( +class IntegrationWaitTimeoutError extends Schema.TaggedError()( "IntegrationWaitTimeoutError", { description: Schema.String, diff --git a/apps/server/scripts/cliErrors.ts b/apps/server/scripts/cliErrors.ts index d384c745f293..d2a410a6e0f3 100644 --- a/apps/server/scripts/cliErrors.ts +++ b/apps/server/scripts/cliErrors.ts @@ -1,6 +1,6 @@ import * as Schema from "effect/Schema"; -export class ServerCliCommandExitError extends Schema.TaggedErrorClass()( +export class ServerCliCommandExitError extends Schema.TaggedError()( "ServerCliCommandExitError", { command: Schema.String, @@ -14,7 +14,7 @@ export class ServerCliCommandExitError extends Schema.TaggedErrorClass()( +export class ServerCliPublishIconSourceMissingError extends Schema.TaggedError()( "ServerCliPublishIconSourceMissingError", { sourcePath: Schema.String, @@ -25,7 +25,7 @@ export class ServerCliPublishIconSourceMissingError extends Schema.TaggedErrorCl } } -export class ServerCliPublishIconTargetMissingError extends Schema.TaggedErrorClass()( +export class ServerCliPublishIconTargetMissingError extends Schema.TaggedError()( "ServerCliPublishIconTargetMissingError", { targetPath: Schema.String, @@ -36,7 +36,7 @@ export class ServerCliPublishIconTargetMissingError extends Schema.TaggedErrorCl } } -export class ServerCliDevelopmentIconSourceMissingError extends Schema.TaggedErrorClass()( +export class ServerCliDevelopmentIconSourceMissingError extends Schema.TaggedError()( "ServerCliDevelopmentIconSourceMissingError", { sourcePath: Schema.String, @@ -47,7 +47,7 @@ export class ServerCliDevelopmentIconSourceMissingError extends Schema.TaggedErr } } -export class ServerCliDevelopmentIconTargetMissingError extends Schema.TaggedErrorClass()( +export class ServerCliDevelopmentIconTargetMissingError extends Schema.TaggedError()( "ServerCliDevelopmentIconTargetMissingError", { targetPath: Schema.String, @@ -58,7 +58,7 @@ export class ServerCliDevelopmentIconTargetMissingError extends Schema.TaggedErr } } -export class ServerCliBuildAssetMissingError extends Schema.TaggedErrorClass()( +export class ServerCliBuildAssetMissingError extends Schema.TaggedError()( "ServerCliBuildAssetMissingError", { assetPath: Schema.String, diff --git a/apps/server/scripts/migrate-dev-db.ts b/apps/server/scripts/migrate-dev-db.ts index 0958f2149f45..4e03ef88e9fa 100644 --- a/apps/server/scripts/migrate-dev-db.ts +++ b/apps/server/scripts/migrate-dev-db.ts @@ -41,7 +41,7 @@ import { Command, Flag } from "effect/unstable/cli"; import { migrationManifest, runMigrations } from "../src/persistence/Migrations.ts"; import * as NodeSqliteClient from "../src/persistence/NodeSqliteClient.ts"; -export class MigrateDevDbNotInWorktreeError extends Schema.TaggedErrorClass()( +export class MigrateDevDbNotInWorktreeError extends Schema.TaggedError()( "MigrateDevDbNotInWorktreeError", {}, ) { @@ -50,7 +50,7 @@ export class MigrateDevDbNotInWorktreeError extends Schema.TaggedErrorClass()( +export class MigrateDevDbSharedHomeError extends Schema.TaggedError()( "MigrateDevDbSharedHomeError", {}, ) { @@ -59,7 +59,7 @@ export class MigrateDevDbSharedHomeError extends Schema.TaggedErrorClass()( +export class MigrateDevDbSourceMissingError extends Schema.TaggedError()( "MigrateDevDbSourceMissingError", { sourcePath: Schema.String, @@ -70,7 +70,7 @@ export class MigrateDevDbSourceMissingError extends Schema.TaggedErrorClass()( +export class MigrateDevDbSourceIsDestinationError extends Schema.TaggedError()( "MigrateDevDbSourceIsDestinationError", { sourcePath: Schema.String, @@ -81,7 +81,7 @@ export class MigrateDevDbSourceIsDestinationError extends Schema.TaggedErrorClas } } -export class MigrateDevDbServerRunningError extends Schema.TaggedErrorClass()( +export class MigrateDevDbServerRunningError extends Schema.TaggedError()( "MigrateDevDbServerRunningError", { databasePath: Schema.String, @@ -93,7 +93,7 @@ export class MigrateDevDbServerRunningError extends Schema.TaggedErrorClass()( +export class MigrateDevDbDestinationBusyError extends Schema.TaggedError()( "MigrateDevDbDestinationBusyError", { databasePath: Schema.String, @@ -115,7 +115,7 @@ export class MigrateDevDbDestinationBusyError extends Schema.TaggedErrorClass()( +export class MigrateDevDbSlotCollisionError extends Schema.TaggedError()( "MigrateDevDbSlotCollisionError", { slot: Schema.Number, @@ -128,7 +128,7 @@ export class MigrateDevDbSlotCollisionError extends Schema.TaggedErrorClass()( +export class MigrateDevDbPhaseError extends Schema.TaggedError()( "MigrateDevDbPhaseError", { phase: Schema.Literals(["snapshot", "prune", "compact", "migrate", "verify"]), diff --git a/apps/server/scripts/t3-sqlite-state.ts b/apps/server/scripts/t3-sqlite-state.ts index de0402b36472..892546915297 100644 --- a/apps/server/scripts/t3-sqlite-state.ts +++ b/apps/server/scripts/t3-sqlite-state.ts @@ -20,7 +20,7 @@ import * as NodeSqliteClient from "../src/persistence/NodeSqliteClient.ts"; export const SqliteStateOperation = Schema.Literals(["query", "exec"]); export type SqliteStateOperation = typeof SqliteStateOperation.Type; -export class SqliteStateMultipleSqlSourcesError extends Schema.TaggedErrorClass()( +export class SqliteStateMultipleSqlSourcesError extends Schema.TaggedError()( "SqliteStateMultipleSqlSourcesError", {}, ) { @@ -29,7 +29,7 @@ export class SqliteStateMultipleSqlSourcesError extends Schema.TaggedErrorClass< } } -export class SqliteStateMissingSqlSourceError extends Schema.TaggedErrorClass()( +export class SqliteStateMissingSqlSourceError extends Schema.TaggedError()( "SqliteStateMissingSqlSourceError", {}, ) { @@ -38,7 +38,7 @@ export class SqliteStateMissingSqlSourceError extends Schema.TaggedErrorClass()( +export class SqliteStateEmptySqlError extends Schema.TaggedError()( "SqliteStateEmptySqlError", {}, ) { @@ -47,7 +47,7 @@ export class SqliteStateEmptySqlError extends Schema.TaggedErrorClass()( +export class SqliteStateDatabaseMissingError extends Schema.TaggedError()( "SqliteStateDatabaseMissingError", { databasePath: Schema.String, @@ -58,7 +58,7 @@ export class SqliteStateDatabaseMissingError extends Schema.TaggedErrorClass()( +export class SqliteStateSharedHomeMutationError extends Schema.TaggedError()( "SqliteStateSharedHomeMutationError", {}, ) { @@ -67,7 +67,7 @@ export class SqliteStateSharedHomeMutationError extends Schema.TaggedErrorClass< } } -export class SqliteStateSqlFileError extends Schema.TaggedErrorClass()( +export class SqliteStateSqlFileError extends Schema.TaggedError()( "SqliteStateSqlFileError", { filePath: Schema.String, @@ -79,7 +79,7 @@ export class SqliteStateSqlFileError extends Schema.TaggedErrorClass()( +export class SqliteStateDatabaseError extends Schema.TaggedError()( "SqliteStateDatabaseError", { operation: SqliteStateOperation, diff --git a/apps/server/src/auth/EnvironmentAuth.ts b/apps/server/src/auth/EnvironmentAuth.ts index eb0563421408..70903fc186e5 100644 --- a/apps/server/src/auth/EnvironmentAuth.ts +++ b/apps/server/src/auth/EnvironmentAuth.ts @@ -71,7 +71,7 @@ const serverAuthInternalErrorContext = { cause: Schema.Defect(), }; -export class ServerAuthBootstrapCredentialValidationError extends Schema.TaggedErrorClass()( +export class ServerAuthBootstrapCredentialValidationError extends Schema.TaggedError()( "ServerAuthBootstrapCredentialValidationError", { ...serverAuthInternalErrorContext, @@ -82,7 +82,7 @@ export class ServerAuthBootstrapCredentialValidationError extends Schema.TaggedE } } -export class ServerAuthSessionCredentialValidationError extends Schema.TaggedErrorClass()( +export class ServerAuthSessionCredentialValidationError extends Schema.TaggedError()( "ServerAuthSessionCredentialValidationError", { ...serverAuthInternalErrorContext, @@ -93,7 +93,7 @@ export class ServerAuthSessionCredentialValidationError extends Schema.TaggedErr } } -export class ServerAuthAuthenticatedSessionIssueError extends Schema.TaggedErrorClass()( +export class ServerAuthAuthenticatedSessionIssueError extends Schema.TaggedError()( "ServerAuthAuthenticatedSessionIssueError", { ...serverAuthInternalErrorContext, @@ -104,7 +104,7 @@ export class ServerAuthAuthenticatedSessionIssueError extends Schema.TaggedError } } -export class ServerAuthAuthenticatedAccessTokenIssueError extends Schema.TaggedErrorClass()( +export class ServerAuthAuthenticatedAccessTokenIssueError extends Schema.TaggedError()( "ServerAuthAuthenticatedAccessTokenIssueError", { ...serverAuthInternalErrorContext, @@ -115,7 +115,7 @@ export class ServerAuthAuthenticatedAccessTokenIssueError extends Schema.TaggedE } } -export class ServerAuthPairingLinkCreationError extends Schema.TaggedErrorClass()( +export class ServerAuthPairingLinkCreationError extends Schema.TaggedError()( "ServerAuthPairingLinkCreationError", { ...serverAuthInternalErrorContext, @@ -126,7 +126,7 @@ export class ServerAuthPairingLinkCreationError extends Schema.TaggedErrorClass< } } -export class ServerAuthPairingLinksListError extends Schema.TaggedErrorClass()( +export class ServerAuthPairingLinksListError extends Schema.TaggedError()( "ServerAuthPairingLinksListError", { ...serverAuthInternalErrorContext, @@ -137,7 +137,7 @@ export class ServerAuthPairingLinksListError extends Schema.TaggedErrorClass()( +export class ServerAuthPairingLinkRevocationError extends Schema.TaggedError()( "ServerAuthPairingLinkRevocationError", { ...serverAuthInternalErrorContext, @@ -148,7 +148,7 @@ export class ServerAuthPairingLinkRevocationError extends Schema.TaggedErrorClas } } -export class ServerAuthSessionTokenIssueError extends Schema.TaggedErrorClass()( +export class ServerAuthSessionTokenIssueError extends Schema.TaggedError()( "ServerAuthSessionTokenIssueError", { ...serverAuthInternalErrorContext, @@ -159,7 +159,7 @@ export class ServerAuthSessionTokenIssueError extends Schema.TaggedErrorClass()( +export class ServerAuthSessionsListError extends Schema.TaggedError()( "ServerAuthSessionsListError", { ...serverAuthInternalErrorContext, @@ -170,7 +170,7 @@ export class ServerAuthSessionsListError extends Schema.TaggedErrorClass()( +export class ServerAuthSessionRevocationError extends Schema.TaggedError()( "ServerAuthSessionRevocationError", { ...serverAuthInternalErrorContext, @@ -181,7 +181,7 @@ export class ServerAuthSessionRevocationError extends Schema.TaggedErrorClass()( +export class ServerAuthOtherSessionsRevocationError extends Schema.TaggedError()( "ServerAuthOtherSessionsRevocationError", { ...serverAuthInternalErrorContext, @@ -192,7 +192,7 @@ export class ServerAuthOtherSessionsRevocationError extends Schema.TaggedErrorCl } } -export class ServerAuthWebSocketTokenIssueError extends Schema.TaggedErrorClass()( +export class ServerAuthWebSocketTokenIssueError extends Schema.TaggedError()( "ServerAuthWebSocketTokenIssueError", { ...serverAuthInternalErrorContext, @@ -203,7 +203,7 @@ export class ServerAuthWebSocketTokenIssueError extends Schema.TaggedErrorClass< } } -export class ServerAuthDpopReplayStateRecordError extends Schema.TaggedErrorClass()( +export class ServerAuthDpopReplayStateRecordError extends Schema.TaggedError()( "ServerAuthDpopReplayStateRecordError", { ...serverAuthInternalErrorContext, @@ -214,7 +214,7 @@ export class ServerAuthDpopReplayStateRecordError extends Schema.TaggedErrorClas } } -export class ServerAuthDpopReplayKeyCalculationError extends Schema.TaggedErrorClass()( +export class ServerAuthDpopReplayKeyCalculationError extends Schema.TaggedError()( "ServerAuthDpopReplayKeyCalculationError", { ...serverAuthInternalErrorContext, @@ -225,7 +225,7 @@ export class ServerAuthDpopReplayKeyCalculationError extends Schema.TaggedErrorC } } -export class ServerAuthLinkedCloudAccountVerificationError extends Schema.TaggedErrorClass()( +export class ServerAuthLinkedCloudAccountVerificationError extends Schema.TaggedError()( "ServerAuthLinkedCloudAccountVerificationError", { ...serverAuthInternalErrorContext, @@ -236,7 +236,7 @@ export class ServerAuthLinkedCloudAccountVerificationError extends Schema.Tagged } } -export class ServerAuthLinkedCloudAccountReadError extends Schema.TaggedErrorClass()( +export class ServerAuthLinkedCloudAccountReadError extends Schema.TaggedError()( "ServerAuthLinkedCloudAccountReadError", { ...serverAuthInternalErrorContext, @@ -247,7 +247,7 @@ export class ServerAuthLinkedCloudAccountReadError extends Schema.TaggedErrorCla } } -export class ServerAuthLinkedCloudAccountMissingError extends Schema.TaggedErrorClass()( +export class ServerAuthLinkedCloudAccountMissingError extends Schema.TaggedError()( "ServerAuthLinkedCloudAccountMissingError", {}, ) { @@ -256,7 +256,7 @@ export class ServerAuthLinkedCloudAccountMissingError extends Schema.TaggedError } } -export class ServerAuthCloudLinkJwtSigningError extends Schema.TaggedErrorClass()( +export class ServerAuthCloudLinkJwtSigningError extends Schema.TaggedError()( "ServerAuthCloudLinkJwtSigningError", { ...serverAuthInternalErrorContext, @@ -267,7 +267,7 @@ export class ServerAuthCloudLinkJwtSigningError extends Schema.TaggedErrorClass< } } -export class ServerAuthCloudMintPublicKeyMissingError extends Schema.TaggedErrorClass()( +export class ServerAuthCloudMintPublicKeyMissingError extends Schema.TaggedError()( "ServerAuthCloudMintPublicKeyMissingError", {}, ) { @@ -276,7 +276,7 @@ export class ServerAuthCloudMintPublicKeyMissingError extends Schema.TaggedError } } -export class ServerAuthCloudRelayIssuerMissingError extends Schema.TaggedErrorClass()( +export class ServerAuthCloudRelayIssuerMissingError extends Schema.TaggedError()( "ServerAuthCloudRelayIssuerMissingError", {}, ) { @@ -285,7 +285,7 @@ export class ServerAuthCloudRelayIssuerMissingError extends Schema.TaggedErrorCl } } -export class ServerAuthCloudHealthJwtSigningError extends Schema.TaggedErrorClass()( +export class ServerAuthCloudHealthJwtSigningError extends Schema.TaggedError()( "ServerAuthCloudHealthJwtSigningError", { ...serverAuthInternalErrorContext, @@ -296,7 +296,7 @@ export class ServerAuthCloudHealthJwtSigningError extends Schema.TaggedErrorClas } } -export class ServerAuthCloudMintJwtSigningError extends Schema.TaggedErrorClass()( +export class ServerAuthCloudMintJwtSigningError extends Schema.TaggedError()( "ServerAuthCloudMintJwtSigningError", { ...serverAuthInternalErrorContext, @@ -334,7 +334,7 @@ export const ServerAuthInternalError = Schema.Union([ export type ServerAuthInternalError = typeof ServerAuthInternalError.Type; export const isServerAuthInternalError = Schema.is(ServerAuthInternalError); -export class ServerAuthMissingCredentialError extends Schema.TaggedErrorClass()( +export class ServerAuthMissingCredentialError extends Schema.TaggedError()( "ServerAuthMissingCredentialError", {}, ) { @@ -343,7 +343,7 @@ export class ServerAuthMissingCredentialError extends Schema.TaggedErrorClass()( +export class ServerAuthInvalidCredentialError extends Schema.TaggedError()( "ServerAuthInvalidCredentialError", { diagnostic: Schema.optional(Schema.String), @@ -366,7 +366,7 @@ export const serverAuthCredentialReason = ( ): "missing_credential" | "invalid_credential" => error._tag === "ServerAuthMissingCredentialError" ? "missing_credential" : "invalid_credential"; -export class ServerAuthInvalidScopeError extends Schema.TaggedErrorClass()( +export class ServerAuthInvalidScopeError extends Schema.TaggedError()( "ServerAuthInvalidScopeError", {}, ) { @@ -375,7 +375,7 @@ export class ServerAuthInvalidScopeError extends Schema.TaggedErrorClass()( +export class ServerAuthScopeNotGrantedError extends Schema.TaggedError()( "ServerAuthScopeNotGrantedError", {}, ) { @@ -395,7 +395,7 @@ export const serverAuthInvalidRequestReason = ( ): "invalid_scope" | "scope_not_granted" => error._tag === "ServerAuthInvalidScopeError" ? "invalid_scope" : "scope_not_granted"; -export class ServerAuthForbiddenOperationError extends Schema.TaggedErrorClass()( +export class ServerAuthForbiddenOperationError extends Schema.TaggedError()( "ServerAuthForbiddenOperationError", {}, ) { diff --git a/apps/server/src/auth/PairingGrantStore.ts b/apps/server/src/auth/PairingGrantStore.ts index 057a257ba664..265bfc85550e 100644 --- a/apps/server/src/auth/PairingGrantStore.ts +++ b/apps/server/src/auth/PairingGrantStore.ts @@ -29,7 +29,7 @@ export interface BootstrapGrant { readonly expiresAt: DateTime.DateTime; } -export class UnknownBootstrapCredentialError extends Schema.TaggedErrorClass()( +export class UnknownBootstrapCredentialError extends Schema.TaggedError()( "UnknownBootstrapCredentialError", {}, ) { @@ -38,7 +38,7 @@ export class UnknownBootstrapCredentialError extends Schema.TaggedErrorClass()( +export class ExpiredBootstrapCredentialError extends Schema.TaggedError()( "ExpiredBootstrapCredentialError", {}, ) { @@ -47,7 +47,7 @@ export class ExpiredBootstrapCredentialError extends Schema.TaggedErrorClass()( +export class BootstrapCredentialProofKeyMismatchError extends Schema.TaggedError()( "BootstrapCredentialProofKeyMismatchError", {}, ) { @@ -56,7 +56,7 @@ export class BootstrapCredentialProofKeyMismatchError extends Schema.TaggedError } } -export class UnavailableBootstrapCredentialError extends Schema.TaggedErrorClass()( +export class UnavailableBootstrapCredentialError extends Schema.TaggedError()( "UnavailableBootstrapCredentialError", {}, ) { @@ -74,7 +74,7 @@ export const BootstrapCredentialInvalidError = Schema.Union([ export type BootstrapCredentialInvalidError = typeof BootstrapCredentialInvalidError.Type; export const isBootstrapCredentialInvalidError = Schema.is(BootstrapCredentialInvalidError); -export class ActivePairingLinksLoadError extends Schema.TaggedErrorClass()( +export class ActivePairingLinksLoadError extends Schema.TaggedError()( "ActivePairingLinksLoadError", { cause: Schema.Defect(), @@ -85,7 +85,7 @@ export class ActivePairingLinksLoadError extends Schema.TaggedErrorClass()( +export class PairingLinkRevokeError extends Schema.TaggedError()( "PairingLinkRevokeError", { pairingLinkId: Schema.String, @@ -97,7 +97,7 @@ export class PairingLinkRevokeError extends Schema.TaggedErrorClass()( +export class PairingCredentialIssueError extends Schema.TaggedError()( "PairingCredentialIssueError", { pairingLinkId: Schema.String, @@ -111,7 +111,7 @@ export class PairingCredentialIssueError extends Schema.TaggedErrorClass()( +export class PairingCredentialRandomGenerationError extends Schema.TaggedError()( "PairingCredentialRandomGenerationError", { operation: Schema.Literals(["generate-id", "generate-token"]), @@ -123,7 +123,7 @@ export class PairingCredentialRandomGenerationError extends Schema.TaggedErrorCl } } -export class BootstrapCredentialConsumeError extends Schema.TaggedErrorClass()( +export class BootstrapCredentialConsumeError extends Schema.TaggedError()( "BootstrapCredentialConsumeError", { cause: Schema.Defect(), @@ -134,7 +134,7 @@ export class BootstrapCredentialConsumeError extends Schema.TaggedErrorClass()( +export class BootstrapCredentialConsumeAvailableError extends Schema.TaggedError()( "BootstrapCredentialConsumeAvailableError", { cause: Schema.Defect(), @@ -145,7 +145,7 @@ export class BootstrapCredentialConsumeAvailableError extends Schema.TaggedError } } -export class BootstrapCredentialLookupError extends Schema.TaggedErrorClass()( +export class BootstrapCredentialLookupError extends Schema.TaggedError()( "BootstrapCredentialLookupError", { cause: Schema.Defect(), diff --git a/apps/server/src/auth/ServerSecretStore.ts b/apps/server/src/auth/ServerSecretStore.ts index 5e9890c1ea28..dbeb5a7d07dd 100644 --- a/apps/server/src/auth/ServerSecretStore.ts +++ b/apps/server/src/auth/ServerSecretStore.ts @@ -16,7 +16,7 @@ const secretStoreErrorContext = { cause: Schema.Defect(), }; -export class SecretStoreSecureError extends Schema.TaggedErrorClass()( +export class SecretStoreSecureError extends Schema.TaggedError()( "SecretStoreSecureError", { ...secretStoreErrorContext, @@ -27,7 +27,7 @@ export class SecretStoreSecureError extends Schema.TaggedErrorClass()( +export class SecretStoreReadError extends Schema.TaggedError()( "SecretStoreReadError", { ...secretStoreErrorContext, @@ -38,7 +38,7 @@ export class SecretStoreReadError extends Schema.TaggedErrorClass()( +export class SecretStoreTemporaryPathError extends Schema.TaggedError()( "SecretStoreTemporaryPathError", { ...secretStoreErrorContext, @@ -49,7 +49,7 @@ export class SecretStoreTemporaryPathError extends Schema.TaggedErrorClass()( +export class SecretStorePersistError extends Schema.TaggedError()( "SecretStorePersistError", { ...secretStoreErrorContext, @@ -60,7 +60,7 @@ export class SecretStorePersistError extends Schema.TaggedErrorClass()( +export class SecretStoreRandomGenerationError extends Schema.TaggedError()( "SecretStoreRandomGenerationError", { ...secretStoreErrorContext, @@ -71,7 +71,7 @@ export class SecretStoreRandomGenerationError extends Schema.TaggedErrorClass()( +export class SecretStoreConcurrentReadError extends Schema.TaggedError()( "SecretStoreConcurrentReadError", { resource: Schema.String, @@ -82,7 +82,7 @@ export class SecretStoreConcurrentReadError extends Schema.TaggedErrorClass()( +export class SecretStoreRemoveError extends Schema.TaggedError()( "SecretStoreRemoveError", { ...secretStoreErrorContext, @@ -93,7 +93,7 @@ export class SecretStoreRemoveError extends Schema.TaggedErrorClass()( +export class SecretStoreDecodeError extends Schema.TaggedError()( "SecretStoreDecodeError", { ...secretStoreErrorContext, @@ -104,7 +104,7 @@ export class SecretStoreDecodeError extends Schema.TaggedErrorClass()( +export class SecretStoreEncodeError extends Schema.TaggedError()( "SecretStoreEncodeError", { ...secretStoreErrorContext, diff --git a/apps/server/src/auth/SessionStore.ts b/apps/server/src/auth/SessionStore.ts index cdcd4a1ac198..aba4295df4a9 100644 --- a/apps/server/src/auth/SessionStore.ts +++ b/apps/server/src/auth/SessionStore.ts @@ -62,7 +62,7 @@ export type SessionCredentialChange = readonly sessionId: AuthSessionId; }; -export class MalformedSessionTokenError extends Schema.TaggedErrorClass()( +export class MalformedSessionTokenError extends Schema.TaggedError()( "MalformedSessionTokenError", {}, ) { @@ -71,7 +71,7 @@ export class MalformedSessionTokenError extends Schema.TaggedErrorClass()( +export class InvalidSessionTokenSignatureError extends Schema.TaggedError()( "InvalidSessionTokenSignatureError", {}, ) { @@ -80,7 +80,7 @@ export class InvalidSessionTokenSignatureError extends Schema.TaggedErrorClass()( +export class InvalidSessionTokenPayloadError extends Schema.TaggedError()( "InvalidSessionTokenPayloadError", { cause: Schema.Defect(), @@ -91,7 +91,7 @@ export class InvalidSessionTokenPayloadError extends Schema.TaggedErrorClass()( +export class SessionTokenExpiredError extends Schema.TaggedError()( "SessionTokenExpiredError", { sessionId: AuthSessionId, @@ -104,7 +104,7 @@ export class SessionTokenExpiredError extends Schema.TaggedErrorClass()( +export class UnknownSessionTokenError extends Schema.TaggedError()( "UnknownSessionTokenError", { sessionId: AuthSessionId, @@ -115,7 +115,7 @@ export class UnknownSessionTokenError extends Schema.TaggedErrorClass()( +export class SessionTokenRevokedError extends Schema.TaggedError()( "SessionTokenRevokedError", { sessionId: AuthSessionId, @@ -127,7 +127,7 @@ export class SessionTokenRevokedError extends Schema.TaggedErrorClass()( +export class InvalidSessionExpirationClaimError extends Schema.TaggedError()( "InvalidSessionExpirationClaimError", { sessionId: AuthSessionId, @@ -139,7 +139,7 @@ export class InvalidSessionExpirationClaimError extends Schema.TaggedErrorClass< } } -export class MalformedWebSocketTokenError extends Schema.TaggedErrorClass()( +export class MalformedWebSocketTokenError extends Schema.TaggedError()( "MalformedWebSocketTokenError", {}, ) { @@ -148,7 +148,7 @@ export class MalformedWebSocketTokenError extends Schema.TaggedErrorClass()( +export class InvalidWebSocketTokenSignatureError extends Schema.TaggedError()( "InvalidWebSocketTokenSignatureError", {}, ) { @@ -157,7 +157,7 @@ export class InvalidWebSocketTokenSignatureError extends Schema.TaggedErrorClass } } -export class InvalidWebSocketTokenPayloadError extends Schema.TaggedErrorClass()( +export class InvalidWebSocketTokenPayloadError extends Schema.TaggedError()( "InvalidWebSocketTokenPayloadError", { cause: Schema.Defect(), @@ -168,7 +168,7 @@ export class InvalidWebSocketTokenPayloadError extends Schema.TaggedErrorClass()( +export class WebSocketTokenExpiredError extends Schema.TaggedError()( "WebSocketTokenExpiredError", { sessionId: AuthSessionId, @@ -181,7 +181,7 @@ export class WebSocketTokenExpiredError extends Schema.TaggedErrorClass()( +export class UnknownWebSocketSessionError extends Schema.TaggedError()( "UnknownWebSocketSessionError", { sessionId: AuthSessionId, @@ -192,7 +192,7 @@ export class UnknownWebSocketSessionError extends Schema.TaggedErrorClass()( +export class WebSocketSessionExpiredError extends Schema.TaggedError()( "WebSocketSessionExpiredError", { sessionId: AuthSessionId, @@ -205,7 +205,7 @@ export class WebSocketSessionExpiredError extends Schema.TaggedErrorClass()( +export class WebSocketSessionRevokedError extends Schema.TaggedError()( "WebSocketSessionRevokedError", { sessionId: AuthSessionId, @@ -240,7 +240,7 @@ const sessionCredentialInternalErrorContext = { cause: Schema.Defect(), }; -export class SessionClaimsEncodingError extends Schema.TaggedErrorClass()( +export class SessionClaimsEncodingError extends Schema.TaggedError()( "SessionClaimsEncodingError", { sessionId: AuthSessionId, @@ -253,7 +253,7 @@ export class SessionClaimsEncodingError extends Schema.TaggedErrorClass()( +export class SessionCredentialIssueError extends Schema.TaggedError()( "SessionCredentialIssueError", { sessionId: Schema.optional(AuthSessionId), @@ -265,7 +265,7 @@ export class SessionCredentialIssueError extends Schema.TaggedErrorClass()( +export class SessionCredentialVerificationError extends Schema.TaggedError()( "SessionCredentialVerificationError", { sessionId: AuthSessionId, @@ -277,7 +277,7 @@ export class SessionCredentialVerificationError extends Schema.TaggedErrorClass< } } -export class WebSocketTokenIssueError extends Schema.TaggedErrorClass()( +export class WebSocketTokenIssueError extends Schema.TaggedError()( "WebSocketTokenIssueError", { sessionId: AuthSessionId, @@ -289,7 +289,7 @@ export class WebSocketTokenIssueError extends Schema.TaggedErrorClass()( +export class WebSocketTokenVerificationError extends Schema.TaggedError()( "WebSocketTokenVerificationError", { sessionId: AuthSessionId, @@ -301,7 +301,7 @@ export class WebSocketTokenVerificationError extends Schema.TaggedErrorClass()( +export class ActiveSessionsListError extends Schema.TaggedError()( "ActiveSessionsListError", { ...sessionCredentialInternalErrorContext, @@ -312,7 +312,7 @@ export class ActiveSessionsListError extends Schema.TaggedErrorClass()( +export class SessionRevocationError extends Schema.TaggedError()( "SessionRevocationError", { sessionId: AuthSessionId, @@ -324,7 +324,7 @@ export class SessionRevocationError extends Schema.TaggedErrorClass()( +export class OtherSessionsRevocationError extends Schema.TaggedError()( "OtherSessionsRevocationError", { currentSessionId: AuthSessionId, diff --git a/apps/server/src/bin.ts b/apps/server/src/bin.ts index 3370a2299dca..fe2bbea5ba52 100644 --- a/apps/server/src/bin.ts +++ b/apps/server/src/bin.ts @@ -33,7 +33,7 @@ const connectUnavailableCommand = Command.make("connect", { command: Argument.string("command").pipe(Argument.variadic), }).pipe( Command.withDescription("T3 Connect is unavailable in builds without public configuration."), - Command.withHidden, + Command.unlisted, Command.withHandler(() => Effect.fail( new CliError.ShowHelp({ diff --git a/apps/server/src/bootstrap.ts b/apps/server/src/bootstrap.ts index 04dcf277e21f..71dae0dc3096 100644 --- a/apps/server/src/bootstrap.ts +++ b/apps/server/src/bootstrap.ts @@ -12,7 +12,7 @@ import * as Schema from "effect/Schema"; import { decodeJsonResult } from "@t3tools/shared/schemaJson"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; -export class BootstrapFdStatError extends Schema.TaggedErrorClass()( +export class BootstrapFdStatError extends Schema.TaggedError()( "BootstrapFdStatError", { fd: Schema.Number, @@ -24,7 +24,7 @@ export class BootstrapFdStatError extends Schema.TaggedErrorClass()( +export class BootstrapInputStreamOpenError extends Schema.TaggedError()( "BootstrapInputStreamOpenError", { fd: Schema.Number, @@ -39,7 +39,7 @@ export class BootstrapInputStreamOpenError extends Schema.TaggedErrorClass()( +export class BootstrapEnvelopeReadError extends Schema.TaggedError()( "BootstrapEnvelopeReadError", { fd: Schema.Number, @@ -51,7 +51,7 @@ export class BootstrapEnvelopeReadError extends Schema.TaggedErrorClass()( +export class BootstrapEnvelopeDecodeError extends Schema.TaggedError()( "BootstrapEnvelopeDecodeError", { fd: Schema.Number, diff --git a/apps/server/src/checkpointing/Errors.ts b/apps/server/src/checkpointing/Errors.ts index bdf409e29716..3f923f18665e 100644 --- a/apps/server/src/checkpointing/Errors.ts +++ b/apps/server/src/checkpointing/Errors.ts @@ -10,7 +10,7 @@ export const CheckpointDiffOperation = Schema.Literals([ export type CheckpointDiffOperation = typeof CheckpointDiffOperation.Type; /** The computed result does not satisfy the checkpoint RPC contract. */ -export class CheckpointDiffResultInvalidError extends Schema.TaggedErrorClass()( +export class CheckpointDiffResultInvalidError extends Schema.TaggedError()( "CheckpointDiffResultInvalidError", { operation: CheckpointDiffOperation, @@ -25,7 +25,7 @@ export class CheckpointDiffResultInvalidError extends Schema.TaggedErrorClass()( +export class CheckpointThreadNotFoundError extends Schema.TaggedError()( "CheckpointThreadNotFoundError", { operation: CheckpointDiffOperation, @@ -38,7 +38,7 @@ export class CheckpointThreadNotFoundError extends Schema.TaggedErrorClass()( +export class CheckpointWorkspacePathMissingError extends Schema.TaggedError()( "CheckpointWorkspacePathMissingError", { operation: CheckpointDiffOperation, @@ -53,7 +53,7 @@ export class CheckpointWorkspacePathMissingError extends Schema.TaggedErrorClass } /** The requested turn lies beyond the latest available checkpoint. */ -export class CheckpointTurnRangeUnavailableError extends Schema.TaggedErrorClass()( +export class CheckpointTurnRangeUnavailableError extends Schema.TaggedError()( "CheckpointTurnRangeUnavailableError", { operation: CheckpointDiffOperation, @@ -68,7 +68,7 @@ export class CheckpointTurnRangeUnavailableError extends Schema.TaggedErrorClass } /** Expected checkpoint metadata does not contain the requested Git ref. */ -export class CheckpointRefUnavailableError extends Schema.TaggedErrorClass()( +export class CheckpointRefUnavailableError extends Schema.TaggedError()( "CheckpointRefUnavailableError", { operation: CheckpointDiffOperation, diff --git a/apps/server/src/cli/pair.ts b/apps/server/src/cli/pair.ts index 38fa3be8bb57..1e6174836bf7 100644 --- a/apps/server/src/cli/pair.ts +++ b/apps/server/src/cli/pair.ts @@ -68,7 +68,7 @@ export type PairStateVariant = "userdata" | "dev"; // dev-vs-userdata state directory; the value itself is not used. const DEV_VARIANT_PLACEHOLDER_URL = new URL("http://localhost"); -export class NoRunningServerError extends Schema.TaggedErrorClass()( +export class NoRunningServerError extends Schema.TaggedError()( "NoRunningServerError", { checkedStatePaths: Schema.Array(Schema.String), @@ -85,7 +85,7 @@ export class NoRunningServerError extends Schema.TaggedErrorClass()( +export class TailscaleUnavailableError extends Schema.TaggedError()( "TailscaleUnavailableError", { cause: Schema.Defect() }, ) { @@ -94,7 +94,7 @@ export class TailscaleUnavailableError extends Schema.TaggedErrorClass()( +export class MagicDnsNameMissingError extends Schema.TaggedError()( "MagicDnsNameMissingError", {}, ) { @@ -103,7 +103,7 @@ export class MagicDnsNameMissingError extends Schema.TaggedErrorClass()( +export class ServesOtherEnvironmentError extends Schema.TaggedError()( "ServesOtherEnvironmentError", { servePort: Schema.Number }, ) { @@ -112,7 +112,7 @@ export class ServesOtherEnvironmentError extends Schema.TaggedErrorClass()( +export class TailscaleServeFailedError extends Schema.TaggedError()( "TailscaleServeFailedError", { servePort: Schema.Number, cause: Schema.Defect() }, ) { @@ -121,7 +121,7 @@ export class TailscaleServeFailedError extends Schema.TaggedErrorClass()( +export class ServePortOccupiedError extends Schema.TaggedError()( "ServePortOccupiedError", { servePort: Schema.Number }, ) { @@ -134,7 +134,7 @@ export class ServePortOccupiedError extends Schema.TaggedErrorClass state.devUrl ?? resolveHeadlessConnectionString(state.host, state.port); -export class DevServerNotProxiableError extends Schema.TaggedErrorClass()( +export class DevServerNotProxiableError extends Schema.TaggedError()( "DevServerNotProxiableError", { devUrl: Schema.String }, ) { diff --git a/apps/server/src/cli/project.ts b/apps/server/src/cli/project.ts index 39b3b2431129..2d7f4a3b9b76 100644 --- a/apps/server/src/cli/project.ts +++ b/apps/server/src/cli/project.ts @@ -52,7 +52,7 @@ type ProjectCliDispatchCommand = Extract< const isEnvironmentHttpCommonError = Schema.is(EnvironmentHttpCommonError); -export class ProjectCommandIdGenerationError extends Schema.TaggedErrorClass()( +export class ProjectCommandIdGenerationError extends Schema.TaggedError()( "ProjectCommandIdGenerationError", { operation: Schema.Literal("generateProjectCommandId"), @@ -64,7 +64,7 @@ export class ProjectCommandIdGenerationError extends Schema.TaggedErrorClass()( +export class ProjectLiveServerDeclaredResponseError extends Schema.TaggedError()( "ProjectLiveServerDeclaredResponseError", { operation: Schema.Literal("callLiveServer"), @@ -78,7 +78,7 @@ export class ProjectLiveServerDeclaredResponseError extends Schema.TaggedErrorCl } } -export class ProjectLiveServerUndeclaredStatusError extends Schema.TaggedErrorClass()( +export class ProjectLiveServerUndeclaredStatusError extends Schema.TaggedError()( "ProjectLiveServerUndeclaredStatusError", { operation: Schema.Literal("callLiveServer"), @@ -91,7 +91,7 @@ export class ProjectLiveServerUndeclaredStatusError extends Schema.TaggedErrorCl } } -export class ProjectLiveServerRequestError extends Schema.TaggedErrorClass()( +export class ProjectLiveServerRequestError extends Schema.TaggedError()( "ProjectLiveServerRequestError", { operation: Schema.Literal("callLiveServer"), @@ -103,7 +103,7 @@ export class ProjectLiveServerRequestError extends Schema.TaggedErrorClass()( +export class ProjectTitleEmptyError extends Schema.TaggedError()( "ProjectTitleEmptyError", { operation: Schema.Literal("validateProjectTitle"), @@ -115,7 +115,7 @@ export class ProjectTitleEmptyError extends Schema.TaggedErrorClass()( +export class ProjectIdentifierEmptyError extends Schema.TaggedError()( "ProjectIdentifierEmptyError", { operation: Schema.Literal("resolveProjectTarget"), @@ -127,7 +127,7 @@ export class ProjectIdentifierEmptyError extends Schema.TaggedErrorClass()( +export class ProjectNotFoundError extends Schema.TaggedError()( "ProjectNotFoundError", { operation: Schema.Literal("resolveProjectTarget"), @@ -142,7 +142,7 @@ export class ProjectNotFoundError extends Schema.TaggedErrorClass()( +export class ProjectAlreadyExistsError extends Schema.TaggedError()( "ProjectAlreadyExistsError", { operation: Schema.Literal("addProject"), diff --git a/apps/server/src/cli/servicePreflight.ts b/apps/server/src/cli/servicePreflight.ts index 60a457f388a6..c31d84ecf816 100644 --- a/apps/server/src/cli/servicePreflight.ts +++ b/apps/server/src/cli/servicePreflight.ts @@ -8,7 +8,7 @@ export const servicePreflightCommand = Command.make("__service-preflight", { databasePath: Flag.string("database-path"), launcherProtocol: Flag.integer("launcher-protocol"), }).pipe( - Command.withHidden, + Command.unlisted, Command.withHandler(({ databasePath, launcherProtocol }) => Console.log(JSON.stringify(runServicePreflight({ databasePath, launcherProtocol }))).pipe( Effect.asVoid, diff --git a/apps/server/src/cli/triage.ts b/apps/server/src/cli/triage.ts index 76d577a12c3f..732f996b6d2c 100644 --- a/apps/server/src/cli/triage.ts +++ b/apps/server/src/cli/triage.ts @@ -49,7 +49,7 @@ const TRIAGE_AGENTS: ReadonlyArray = [ { id: "codex", command: "codex", label: "Codex" }, ]; -export class TriageAgentUnavailableError extends Schema.TaggedErrorClass()( +export class TriageAgentUnavailableError extends Schema.TaggedError()( "TriageAgentUnavailableError", { agent: Schema.String }, ) { @@ -58,7 +58,7 @@ export class TriageAgentUnavailableError extends Schema.TaggedErrorClass()( +export class TriageAgentChoiceRequiredError extends Schema.TaggedError()( "TriageAgentChoiceRequiredError", {}, ) { @@ -67,7 +67,7 @@ export class TriageAgentChoiceRequiredError extends Schema.TaggedErrorClass()( +export class TriageAgentSpawnError extends Schema.TaggedError()( "TriageAgentSpawnError", { command: Schema.String, cause: Schema.Defect() }, ) { diff --git a/apps/server/src/cloud/CliTokenManager.test.ts b/apps/server/src/cloud/CliTokenManager.test.ts index e6eb6b7cd6fd..953bf48a81cb 100644 --- a/apps/server/src/cloud/CliTokenManager.test.ts +++ b/apps/server/src/cloud/CliTokenManager.test.ts @@ -88,10 +88,9 @@ const provideTestEnv = Effect.provide( const isAuthorizationError = Schema.is(CliTokenManager.CloudCliAuthorizationError); -class PromptRejectedError extends Schema.TaggedErrorClass()( - "PromptRejectedError", - { message: Schema.String }, -) {} +class PromptRejectedError extends Schema.TaggedError()("PromptRejectedError", { + message: Schema.String, +}) {} it("formats loopback authorization with a headless-host fallback", () => { assert.equal( diff --git a/apps/server/src/cloud/CliTokenManager.ts b/apps/server/src/cloud/CliTokenManager.ts index b0867b62f6c8..09d6c28fd78f 100644 --- a/apps/server/src/cloud/CliTokenManager.ts +++ b/apps/server/src/cloud/CliTokenManager.ts @@ -163,7 +163,7 @@ function idTokenIdentity(idToken: string | undefined): string | null { return null; } -export class CloudCliCredentialRemovalError extends Schema.TaggedErrorClass()( +export class CloudCliCredentialRemovalError extends Schema.TaggedError()( "CloudCliCredentialRemovalError", { cause: Schema.Defect() }, ) { @@ -172,7 +172,7 @@ export class CloudCliCredentialRemovalError extends Schema.TaggedErrorClass()( +export class CloudCliCredentialRefreshError extends Schema.TaggedError()( "CloudCliCredentialRefreshError", { cause: Schema.Defect() }, ) { @@ -181,7 +181,7 @@ export class CloudCliCredentialRefreshError extends Schema.TaggedErrorClass()( +export class CloudCliCredentialReadError extends Schema.TaggedError()( "CloudCliCredentialReadError", { cause: Schema.Defect() }, ) { @@ -190,7 +190,7 @@ export class CloudCliCredentialReadError extends Schema.TaggedErrorClass()( +export class CloudCliAuthorizationError extends Schema.TaggedError()( "CloudCliAuthorizationError", { cause: Schema.Defect() }, ) { @@ -199,7 +199,7 @@ export class CloudCliAuthorizationError extends Schema.TaggedErrorClass()( +export class CloudCliAuthorizationTimeoutError extends Schema.TaggedError()( "CloudCliAuthorizationTimeoutError", { cause: Schema.Defect() }, ) { diff --git a/apps/server/src/cloud/bootService.ts b/apps/server/src/cloud/bootService.ts index 795bf38e979d..3a68bd537b27 100644 --- a/apps/server/src/cloud/bootService.ts +++ b/apps/server/src/cloud/bootService.ts @@ -359,7 +359,7 @@ export function selectBootServiceManager(input: { return undefined; } -export class BootServiceUnsupportedError extends Schema.TaggedErrorClass()( +export class BootServiceUnsupportedError extends Schema.TaggedError()( "BootServiceUnsupportedError", { platform: Schema.String }, ) { @@ -368,7 +368,7 @@ export class BootServiceUnsupportedError extends Schema.TaggedErrorClass()( +export class BootServiceCommandError extends Schema.TaggedError()( "BootServiceCommandError", { step: Schema.String, @@ -385,7 +385,7 @@ export class BootServiceCommandError extends Schema.TaggedErrorClass()( +export class BootServiceInstallError extends Schema.TaggedError()( "BootServiceInstallError", { cause: Schema.Defect() }, ) { @@ -394,7 +394,7 @@ export class BootServiceInstallError extends Schema.TaggedErrorClass()( +export class BootServiceUpdatePendingError extends Schema.TaggedError()( "BootServiceUpdatePendingError", {}, ) { diff --git a/apps/server/src/cloud/pinnedRuntime.ts b/apps/server/src/cloud/pinnedRuntime.ts index 06628d5cc12f..8f437ead4dc8 100644 --- a/apps/server/src/cloud/pinnedRuntime.ts +++ b/apps/server/src/cloud/pinnedRuntime.ts @@ -41,7 +41,7 @@ export function pinnedRuntimePaths( }; } -export class PinnedRuntimeInstallError extends Schema.TaggedErrorClass()( +export class PinnedRuntimeInstallError extends Schema.TaggedError()( "PinnedRuntimeInstallError", { step: Schema.String, @@ -58,7 +58,7 @@ export class PinnedRuntimeInstallError extends Schema.TaggedErrorClass()( +export class PinnedRuntimePreflightBlockedError extends Schema.TaggedError()( "PinnedRuntimePreflightBlockedError", { version: Schema.String, diff --git a/apps/server/src/cloud/serviceLauncherClient.ts b/apps/server/src/cloud/serviceLauncherClient.ts index 970c72cee721..2d644157211f 100644 --- a/apps/server/src/cloud/serviceLauncherClient.ts +++ b/apps/server/src/cloud/serviceLauncherClient.ts @@ -14,7 +14,7 @@ import { type ServiceLauncherParentMessage, } from "./serviceProtocol.ts"; -export class ServiceLauncherClientError extends Schema.TaggedErrorClass()( +export class ServiceLauncherClientError extends Schema.TaggedError()( "ServiceLauncherClientError", { operation: Schema.Literals([ @@ -49,7 +49,7 @@ export class ServiceLauncherClientError extends Schema.TaggedErrorClass()( +export class ServiceLauncherRejectedError extends Schema.TaggedError()( "ServiceLauncherRejectedError", { targetVersion: Schema.String, diff --git a/apps/server/src/diagnostics/ProcessDiagnostics.ts b/apps/server/src/diagnostics/ProcessDiagnostics.ts index 8aeb7ba24715..eec6d1cdbdb0 100644 --- a/apps/server/src/diagnostics/ProcessDiagnostics.ts +++ b/apps/server/src/diagnostics/ProcessDiagnostics.ts @@ -13,7 +13,7 @@ import * as Schema from "effect/Schema"; import * as ResourceTelemetry from "../resourceTelemetry/ResourceTelemetry.ts"; -export class ProcessSignalFailed extends Schema.TaggedErrorClass()( +export class ProcessSignalFailed extends Schema.TaggedError()( "ProcessSignalFailed", { pid: Schema.Number, diff --git a/apps/server/src/diagnostics/TraceDiagnostics.ts b/apps/server/src/diagnostics/TraceDiagnostics.ts index d54e033380c0..85900e6915cb 100644 --- a/apps/server/src/diagnostics/TraceDiagnostics.ts +++ b/apps/server/src/diagnostics/TraceDiagnostics.ts @@ -41,7 +41,7 @@ export interface TraceDiagnosticsOptions { readonly readAt?: DateTime.Utc; } -export class TraceFileReadError extends Schema.TaggedErrorClass()( +export class TraceFileReadError extends Schema.TaggedError()( "TraceFileReadError", { traceFilePath: Schema.String, diff --git a/apps/server/src/environment/ServerEnvironment.ts b/apps/server/src/environment/ServerEnvironment.ts index 45dc0ee9cfd5..8e73467774a9 100644 --- a/apps/server/src/environment/ServerEnvironment.ts +++ b/apps/server/src/environment/ServerEnvironment.ts @@ -17,7 +17,7 @@ import * as ServerConfig from "../config.ts"; import * as ProcessRunner from "../processRunner.ts"; import { resolveServerEnvironmentLabel } from "./ServerEnvironmentLabel.ts"; -export class ServerEnvironmentIdPersistenceError extends Schema.TaggedErrorClass()( +export class ServerEnvironmentIdPersistenceError extends Schema.TaggedError()( "ServerEnvironmentIdPersistenceError", { operation: Schema.Literals(["check", "read", "write"]), diff --git a/apps/server/src/environment/ServerEnvironmentLabel.ts b/apps/server/src/environment/ServerEnvironmentLabel.ts index bd034e0fa269..1d944492331a 100644 --- a/apps/server/src/environment/ServerEnvironmentLabel.ts +++ b/apps/server/src/environment/ServerEnvironmentLabel.ts @@ -16,7 +16,7 @@ const ServerEnvironmentLabelCommandProbe = Schema.Literals([ ]); type ServerEnvironmentLabelCommandProbe = typeof ServerEnvironmentLabelCommandProbe.Type; -export class ServerEnvironmentLabelFileError extends Schema.TaggedErrorClass()( +export class ServerEnvironmentLabelFileError extends Schema.TaggedError()( "ServerEnvironmentLabelFileError", { operation: Schema.Literals(["inspect", "read"]), @@ -29,7 +29,7 @@ export class ServerEnvironmentLabelFileError extends Schema.TaggedErrorClass()( +export class ServerEnvironmentLabelCommandError extends Schema.TaggedError()( "ServerEnvironmentLabelCommandError", { probe: ServerEnvironmentLabelCommandProbe, diff --git a/apps/server/src/mcp/McpHttpServer.test.ts b/apps/server/src/mcp/McpHttpServer.test.ts index fa2880f9c364..bf40c7323783 100644 --- a/apps/server/src/mcp/McpHttpServer.test.ts +++ b/apps/server/src/mcp/McpHttpServer.test.ts @@ -27,6 +27,8 @@ const invocation = { const client = McpSchema.McpServerClient.of({ clientId: 1, protocolVersion: "2025-06-18", + clientCapabilities: {}, + clientInfo: { name: "mcp-test", version: "1.0.0" }, initializePayload: { protocolVersion: "2025-06-18", capabilities: {}, diff --git a/apps/server/src/orchestration/Errors.ts b/apps/server/src/orchestration/Errors.ts index 7abd567704f1..7e1d58eaaafa 100644 --- a/apps/server/src/orchestration/Errors.ts +++ b/apps/server/src/orchestration/Errors.ts @@ -3,7 +3,7 @@ import * as Schema from "effect/Schema"; import type { ProjectionRepositoryError } from "../persistence/Errors.ts"; -export class OrchestrationCommandJsonParseError extends Schema.TaggedErrorClass()( +export class OrchestrationCommandJsonParseError extends Schema.TaggedError()( "OrchestrationCommandJsonParseError", { detail: Schema.String, @@ -15,7 +15,7 @@ export class OrchestrationCommandJsonParseError extends Schema.TaggedErrorClass< } } -export class OrchestrationCommandDecodeError extends Schema.TaggedErrorClass()( +export class OrchestrationCommandDecodeError extends Schema.TaggedError()( "OrchestrationCommandDecodeError", { issue: Schema.String, @@ -27,7 +27,7 @@ export class OrchestrationCommandDecodeError extends Schema.TaggedErrorClass()( +export class OrchestrationCommandInvariantError extends Schema.TaggedError()( "OrchestrationCommandInvariantError", { commandType: Schema.String, @@ -40,7 +40,7 @@ export class OrchestrationCommandInvariantError extends Schema.TaggedErrorClass< } } -export class OrchestrationCommandPreviouslyRejectedError extends Schema.TaggedErrorClass()( +export class OrchestrationCommandPreviouslyRejectedError extends Schema.TaggedError()( "OrchestrationCommandPreviouslyRejectedError", { commandId: Schema.String, @@ -53,7 +53,7 @@ export class OrchestrationCommandPreviouslyRejectedError extends Schema.TaggedEr } } -export class OrchestrationCommandIdConflictError extends Schema.TaggedErrorClass()( +export class OrchestrationCommandIdConflictError extends Schema.TaggedError()( "OrchestrationCommandIdConflictError", { commandId: Schema.String, @@ -68,7 +68,7 @@ export class OrchestrationCommandIdConflictError extends Schema.TaggedErrorClass } } -export class OrchestrationProjectorDecodeError extends Schema.TaggedErrorClass()( +export class OrchestrationProjectorDecodeError extends Schema.TaggedError()( "OrchestrationProjectorDecodeError", { eventType: Schema.String, @@ -81,7 +81,7 @@ export class OrchestrationProjectorDecodeError extends Schema.TaggedErrorClass()( +export class OrchestrationListenerCallbackError extends Schema.TaggedError()( "OrchestrationListenerCallbackError", { listener: Schema.Literals(["read-model", "domain-event"]), diff --git a/apps/server/src/persistence/Errors.ts b/apps/server/src/persistence/Errors.ts index 03edaec77d63..82fded10b37a 100644 --- a/apps/server/src/persistence/Errors.ts +++ b/apps/server/src/persistence/Errors.ts @@ -27,7 +27,7 @@ export const PersistenceErrorCorrelation = Schema.Union([ ]); export type PersistenceErrorCorrelation = typeof PersistenceErrorCorrelation.Type; -export class PersistenceSqlError extends Schema.TaggedErrorClass()( +export class PersistenceSqlError extends Schema.TaggedError()( "PersistenceSqlError", { operation: Schema.String, @@ -43,7 +43,7 @@ export class PersistenceSqlError extends Schema.TaggedErrorClass()( +export class PersistenceDecodeError extends Schema.TaggedError()( "PersistenceDecodeError", { operation: Schema.String, @@ -95,7 +95,7 @@ export const isPersistenceError = (u: unknown) => // Provider Session Repository Errors // =============================== -export class ProviderSessionRepositoryValidationError extends Schema.TaggedErrorClass()( +export class ProviderSessionRepositoryValidationError extends Schema.TaggedError()( "ProviderSessionRepositoryValidationError", { operation: Schema.String, @@ -108,7 +108,7 @@ export class ProviderSessionRepositoryValidationError extends Schema.TaggedError } } -export class ProviderSessionRepositoryPersistenceError extends Schema.TaggedErrorClass()( +export class ProviderSessionRepositoryPersistenceError extends Schema.TaggedError()( "ProviderSessionRepositoryPersistenceError", { operation: Schema.String, diff --git a/apps/server/src/persistence/NodeSqliteClient.ts b/apps/server/src/persistence/NodeSqliteClient.ts index d2a5f9dcf95e..3716f0ee4848 100644 --- a/apps/server/src/persistence/NodeSqliteClient.ts +++ b/apps/server/src/persistence/NodeSqliteClient.ts @@ -46,7 +46,7 @@ export interface SqliteMemoryClientConfig extends Omit< "filename" | "readonly" > {} -export class UnsupportedNodeSqliteVersionError extends Schema.TaggedErrorClass()( +export class UnsupportedNodeSqliteVersionError extends Schema.TaggedError()( "UnsupportedNodeSqliteVersionError", { nodeVersion: Schema.String, @@ -58,7 +58,7 @@ export class UnsupportedNodeSqliteVersionError extends Schema.TaggedErrorClass()( +export class UnsupportedNodeSqliteOperationError extends Schema.TaggedError()( "UnsupportedNodeSqliteOperationError", {}, ) { diff --git a/apps/server/src/processRunner.ts b/apps/server/src/processRunner.ts index 16b5625d4690..f416c9e158b4 100644 --- a/apps/server/src/processRunner.ts +++ b/apps/server/src/processRunner.ts @@ -64,7 +64,7 @@ const formatProcessInvocation = (input: { : `'${input.command}' in '${executionCwd}'`; }; -export class ProcessSpawnError extends Schema.TaggedErrorClass()( +export class ProcessSpawnError extends Schema.TaggedError()( "ProcessSpawnError", { ...ProcessInvocationFields, @@ -79,7 +79,7 @@ export class ProcessSpawnError extends Schema.TaggedErrorClass()( +export class ProcessStdinError extends Schema.TaggedError()( "ProcessStdinError", { ...ProcessInvocationFields, @@ -92,7 +92,7 @@ export class ProcessStdinError extends Schema.TaggedErrorClass()( +export class ProcessOutputLimitError extends Schema.TaggedError()( "ProcessOutputLimitError", { ...ProcessInvocationFields, @@ -106,20 +106,17 @@ export class ProcessOutputLimitError extends Schema.TaggedErrorClass()( - "ProcessReadError", - { - ...ProcessInvocationFields, - stream: Schema.Literals(["stdout", "stderr", "exitCode"]), - cause: Schema.Defect(), - }, -) { +export class ProcessReadError extends Schema.TaggedError()("ProcessReadError", { + ...ProcessInvocationFields, + stream: Schema.Literals(["stdout", "stderr", "exitCode"]), + cause: Schema.Defect(), +}) { override get message(): string { return `Failed to read ${this.stream} for process ${formatProcessInvocation(this)}`; } } -export class ProcessTimeoutError extends Schema.TaggedErrorClass()( +export class ProcessTimeoutError extends Schema.TaggedError()( "ProcessTimeoutError", { ...ProcessInvocationFields, diff --git a/apps/server/src/project/ProjectFaviconResolver.ts b/apps/server/src/project/ProjectFaviconResolver.ts index 9d9a5bddc791..b3380c1b63f0 100644 --- a/apps/server/src/project/ProjectFaviconResolver.ts +++ b/apps/server/src/project/ProjectFaviconResolver.ts @@ -63,7 +63,7 @@ const LINK_ICON_HTML_RE = const ICON_REL_RE = /\brel\s*:\s*["'](?:icon|shortcut icon)["']/i; const ICON_HREF_RE = /\bhref\s*:\s*["']([^"'?]+)/i; -export class ProjectFaviconResolutionError extends Schema.TaggedErrorClass()( +export class ProjectFaviconResolutionError extends Schema.TaggedError()( "ProjectFaviconResolutionError", { operation: Schema.Literals([ diff --git a/apps/server/src/project/ProjectSetupScriptRunner.ts b/apps/server/src/project/ProjectSetupScriptRunner.ts index 41bf0fabf489..0517d65d3cf6 100644 --- a/apps/server/src/project/ProjectSetupScriptRunner.ts +++ b/apps/server/src/project/ProjectSetupScriptRunner.ts @@ -33,7 +33,7 @@ export interface ProjectSetupScriptRunnerInput { readonly preferredTerminalId?: string; } -export class ProjectSetupScriptOperationError extends Schema.TaggedErrorClass()( +export class ProjectSetupScriptOperationError extends Schema.TaggedError()( "ProjectSetupScriptOperationError", { threadId: Schema.String, @@ -49,7 +49,7 @@ export class ProjectSetupScriptOperationError extends Schema.TaggedErrorClass()( +export class ProjectSetupScriptProjectNotFoundError extends Schema.TaggedError()( "ProjectSetupScriptProjectNotFoundError", { threadId: Schema.String, diff --git a/apps/server/src/project/T3ProjectFileLoader.ts b/apps/server/src/project/T3ProjectFileLoader.ts index 00ad9d3835a5..473dce695046 100644 --- a/apps/server/src/project/T3ProjectFileLoader.ts +++ b/apps/server/src/project/T3ProjectFileLoader.ts @@ -21,7 +21,7 @@ import { T3ProjectFileFromJson } from "@t3tools/shared/t3ProjectFile"; const decodeT3ProjectFileJson = Schema.decodeEffect(T3ProjectFileFromJson); -export class T3ProjectFileLoadError extends Schema.TaggedErrorClass()( +export class T3ProjectFileLoadError extends Schema.TaggedError()( "T3ProjectFileLoadError", { operation: Schema.Literals(["read", "decode"]), diff --git a/apps/server/src/provider/Drivers/CodexHomeLayout.ts b/apps/server/src/provider/Drivers/CodexHomeLayout.ts index 92e923c0b669..8efd0b5d994a 100644 --- a/apps/server/src/provider/Drivers/CodexHomeLayout.ts +++ b/apps/server/src/provider/Drivers/CodexHomeLayout.ts @@ -70,7 +70,7 @@ const CodexShadowHomeContext = { effectiveHomePath: Schema.String, }; -export class CodexShadowHomeFileSystemError extends Schema.TaggedErrorClass()( +export class CodexShadowHomeFileSystemError extends Schema.TaggedError()( "CodexShadowHomeFileSystemError", { ...CodexShadowHomeContext, @@ -87,7 +87,7 @@ export class CodexShadowHomeFileSystemError extends Schema.TaggedErrorClass()( +export class CodexShadowHomePathConflictError extends Schema.TaggedError()( "CodexShadowHomePathConflictError", CodexShadowHomeContext, ) { @@ -96,7 +96,7 @@ export class CodexShadowHomePathConflictError extends Schema.TaggedErrorClass()( +export class CodexShadowHomeEntryConflictError extends Schema.TaggedError()( "CodexShadowHomeEntryConflictError", { ...CodexShadowHomeContext, @@ -110,7 +110,7 @@ export class CodexShadowHomeEntryConflictError extends Schema.TaggedErrorClass()( +export class CodexShadowHomePrivateEntrySymlinkError extends Schema.TaggedError()( "CodexShadowHomePrivateEntrySymlinkError", { ...CodexShadowHomeContext, diff --git a/apps/server/src/provider/Errors.ts b/apps/server/src/provider/Errors.ts index 0cf1522399b4..73438affe8f8 100644 --- a/apps/server/src/provider/Errors.ts +++ b/apps/server/src/provider/Errors.ts @@ -5,7 +5,7 @@ import type { CheckpointServiceError } from "../checkpointing/Errors.ts"; /** * ProviderAdapterValidationError - Invalid adapter API input. */ -export class ProviderAdapterValidationError extends Schema.TaggedErrorClass()( +export class ProviderAdapterValidationError extends Schema.TaggedError()( "ProviderAdapterValidationError", { provider: Schema.String, @@ -22,7 +22,7 @@ export class ProviderAdapterValidationError extends Schema.TaggedErrorClass()( +export class ProviderAdapterSessionNotFoundError extends Schema.TaggedError()( "ProviderAdapterSessionNotFoundError", { provider: Schema.String, @@ -38,7 +38,7 @@ export class ProviderAdapterSessionNotFoundError extends Schema.TaggedErrorClass /** * ProviderAdapterSessionClosedError - Adapter session exists but is closed. */ -export class ProviderAdapterSessionClosedError extends Schema.TaggedErrorClass()( +export class ProviderAdapterSessionClosedError extends Schema.TaggedError()( "ProviderAdapterSessionClosedError", { provider: Schema.String, @@ -54,7 +54,7 @@ export class ProviderAdapterSessionClosedError extends Schema.TaggedErrorClass

()( +export class ProviderAdapterRequestError extends Schema.TaggedError()( "ProviderAdapterRequestError", { provider: Schema.String, @@ -71,7 +71,7 @@ export class ProviderAdapterRequestError extends Schema.TaggedErrorClass()( +export class ProviderAdapterProcessError extends Schema.TaggedError()( "ProviderAdapterProcessError", { provider: Schema.String, @@ -88,7 +88,7 @@ export class ProviderAdapterProcessError extends Schema.TaggedErrorClass()( +export class ProviderValidationError extends Schema.TaggedError()( "ProviderValidationError", { operation: Schema.String, @@ -104,7 +104,7 @@ export class ProviderValidationError extends Schema.TaggedErrorClass()( +export class ProviderUnsupportedError extends Schema.TaggedError()( "ProviderUnsupportedError", { provider: Schema.String, @@ -125,7 +125,7 @@ export class ProviderUnsupportedError extends Schema.TaggedErrorClass()( +export class ProviderInstanceNotFoundError extends Schema.TaggedError()( "ProviderInstanceNotFoundError", { instanceId: Schema.String, @@ -142,7 +142,7 @@ export class ProviderInstanceNotFoundError extends Schema.TaggedErrorClass()( +export class ProviderDriverError extends Schema.TaggedError()( "ProviderDriverError", { driver: Schema.String, @@ -159,7 +159,7 @@ export class ProviderDriverError extends Schema.TaggedErrorClass()( +export class ProviderSessionNotFoundError extends Schema.TaggedError()( "ProviderSessionNotFoundError", { threadId: Schema.String, @@ -174,7 +174,7 @@ export class ProviderSessionNotFoundError extends Schema.TaggedErrorClass()( +export class ProviderSessionDirectoryPersistenceError extends Schema.TaggedError()( "ProviderSessionDirectoryPersistenceError", { operation: Schema.String, diff --git a/apps/server/src/provider/Layers/CodexSessionRuntime.ts b/apps/server/src/provider/Layers/CodexSessionRuntime.ts index 29bb992611c1..250ce7e5c367 100644 --- a/apps/server/src/provider/Layers/CodexSessionRuntime.ts +++ b/apps/server/src/provider/Layers/CodexSessionRuntime.ts @@ -161,7 +161,7 @@ export type CodexSessionRuntimeError = | CodexSessionRuntimeInvalidUserInputAnswersError | CodexSessionRuntimeThreadIdMissingError; -export class CodexSessionRuntimePendingApprovalNotFoundError extends Schema.TaggedErrorClass()( +export class CodexSessionRuntimePendingApprovalNotFoundError extends Schema.TaggedError()( "CodexSessionRuntimePendingApprovalNotFoundError", { requestId: Schema.String, @@ -172,7 +172,7 @@ export class CodexSessionRuntimePendingApprovalNotFoundError extends Schema.Tagg } } -export class CodexSessionRuntimePendingUserInputNotFoundError extends Schema.TaggedErrorClass()( +export class CodexSessionRuntimePendingUserInputNotFoundError extends Schema.TaggedError()( "CodexSessionRuntimePendingUserInputNotFoundError", { requestId: Schema.String, @@ -183,7 +183,7 @@ export class CodexSessionRuntimePendingUserInputNotFoundError extends Schema.Tag } } -export class CodexSessionRuntimeInvalidUserInputAnswersError extends Schema.TaggedErrorClass()( +export class CodexSessionRuntimeInvalidUserInputAnswersError extends Schema.TaggedError()( "CodexSessionRuntimeInvalidUserInputAnswersError", { questionId: Schema.String, @@ -194,7 +194,7 @@ export class CodexSessionRuntimeInvalidUserInputAnswersError extends Schema.Tagg } } -export class CodexSessionRuntimeThreadIdMissingError extends Schema.TaggedErrorClass()( +export class CodexSessionRuntimeThreadIdMissingError extends Schema.TaggedError()( "CodexSessionRuntimeThreadIdMissingError", { threadId: Schema.String, diff --git a/apps/server/src/provider/Layers/EventNdjsonLogger.ts b/apps/server/src/provider/Layers/EventNdjsonLogger.ts index e07121ea76c1..cc42a88aaddb 100644 --- a/apps/server/src/provider/Layers/EventNdjsonLogger.ts +++ b/apps/server/src/provider/Layers/EventNdjsonLogger.ts @@ -76,7 +76,7 @@ export interface EventNdjsonLoggerOptions extends EventNdjsonLogStoreOptions { readonly stream: EventNdjsonStream; } -export class EventNdjsonLogConfigurationError extends Schema.TaggedErrorClass()( +export class EventNdjsonLogConfigurationError extends Schema.TaggedError()( "EventNdjsonLogConfigurationError", { filePath: Schema.String, @@ -90,7 +90,7 @@ export class EventNdjsonLogConfigurationError extends Schema.TaggedErrorClass()( +export class EventNdjsonLogDirectoryError extends Schema.TaggedError()( "EventNdjsonLogDirectoryError", { directory: Schema.String, diff --git a/apps/server/src/provider/providerSnapshot.ts b/apps/server/src/provider/providerSnapshot.ts index 03b4cf4a3b6e..98e236c8f906 100644 --- a/apps/server/src/provider/providerSnapshot.ts +++ b/apps/server/src/provider/providerSnapshot.ts @@ -28,7 +28,7 @@ export interface CommandResult { readonly code: number; } -export class ProviderCommandNotFoundError extends Schema.TaggedErrorClass()( +export class ProviderCommandNotFoundError extends Schema.TaggedError()( "ProviderCommandNotFoundError", { binaryPath: Schema.String, diff --git a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts index 549a172b3646..c360164f34b4 100644 --- a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts +++ b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.ts @@ -25,7 +25,7 @@ import type { ProviderListCursor } from "./PullRequestProvider.ts"; * Names the read that produced unusable output, so a failure reports the call it came from * rather than borrowing another operation's message. */ -export class AzureDevOpsPullRequestReadError extends Schema.TaggedErrorClass()( +export class AzureDevOpsPullRequestReadError extends Schema.TaggedError()( "AzureDevOpsPullRequestReadError", { command: Schema.Literal("az"), @@ -44,7 +44,7 @@ export class AzureDevOpsPullRequestReadError extends Schema.TaggedErrorClass()( +export class AzureDevOpsViewerUnavailableError extends Schema.TaggedError()( "AzureDevOpsViewerUnavailableError", { command: Schema.Literal("az"), @@ -64,7 +64,7 @@ export class AzureDevOpsViewerUnavailableError extends Schema.TaggedErrorClass()( +export class AzureDevOpsPullRequestIncompleteError extends Schema.TaggedError()( "AzureDevOpsPullRequestIncompleteError", { command: Schema.Literal("az"), @@ -86,7 +86,7 @@ export class AzureDevOpsPullRequestIncompleteError extends Schema.TaggedErrorCla * reviewers travel as argv rather than in a request body — `az repos pr reviewer` takes them no * other way — so anything that could leave the value position is refused rather than sent. */ -export class AzureDevOpsReviewerNameError extends Schema.TaggedErrorClass()( +export class AzureDevOpsReviewerNameError extends Schema.TaggedError()( "AzureDevOpsReviewerNameError", { command: Schema.Literal("az"), diff --git a/apps/server/src/pullRequest/BitbucketPullRequestApi.ts b/apps/server/src/pullRequest/BitbucketPullRequestApi.ts index 5b3149b0d75c..9b8db662f7e0 100644 --- a/apps/server/src/pullRequest/BitbucketPullRequestApi.ts +++ b/apps/server/src/pullRequest/BitbucketPullRequestApi.ts @@ -41,7 +41,7 @@ import type { ProviderListCursor } from "./PullRequestProvider.ts"; * Names the read that produced unusable output, so a failure reports the call it came from * rather than borrowing another operation's message. */ -export class BitbucketPullRequestReadError extends Schema.TaggedErrorClass()( +export class BitbucketPullRequestReadError extends Schema.TaggedError()( "BitbucketPullRequestReadError", { operation: Schema.String, @@ -58,7 +58,7 @@ export class BitbucketPullRequestReadError extends Schema.TaggedErrorClass()( +export class BitbucketViewerUnavailableError extends Schema.TaggedError()( "BitbucketViewerUnavailableError", {}, ) { @@ -72,7 +72,7 @@ export class BitbucketViewerUnavailableError extends Schema.TaggedErrorClass()( +export class BitbucketRepositoryUnsupportedError extends Schema.TaggedError()( "BitbucketRepositoryUnsupportedError", { repository: Schema.String, @@ -88,7 +88,7 @@ export class BitbucketRepositoryUnsupportedError extends Schema.TaggedErrorClass } /** Not a decode failure: the reader named a commit that is not a sha this repository could hold. */ -export class BitbucketDiffCommitError extends Schema.TaggedErrorClass()( +export class BitbucketDiffCommitError extends Schema.TaggedError()( "BitbucketDiffCommitError", {}, ) { diff --git a/apps/server/src/pullRequest/GitHubPullRequestCli.ts b/apps/server/src/pullRequest/GitHubPullRequestCli.ts index 2084a50d0206..fe749ab778bd 100644 --- a/apps/server/src/pullRequest/GitHubPullRequestCli.ts +++ b/apps/server/src/pullRequest/GitHubPullRequestCli.ts @@ -88,7 +88,7 @@ import type { ProviderListCursor } from "./PullRequestProvider.ts"; * Names the read that produced unusable output, so a failure reports the call it came from * rather than borrowing another operation's message. */ -export class GitHubPullRequestReadError extends Schema.TaggedErrorClass()( +export class GitHubPullRequestReadError extends Schema.TaggedError()( "GitHubPullRequestReadError", { command: Schema.Literal("gh"), @@ -107,7 +107,7 @@ export class GitHubPullRequestReadError extends Schema.TaggedErrorClass()( +export class GitHubViewerLoginUnavailableError extends Schema.TaggedError()( "GitHubViewerLoginUnavailableError", { command: Schema.Literal("gh"), @@ -124,7 +124,7 @@ export class GitHubViewerLoginUnavailableError extends Schema.TaggedErrorClass()( +export class GitHubDiffCursorError extends Schema.TaggedError()( "GitHubDiffCursorError", { command: Schema.Literal("gh"), @@ -141,7 +141,7 @@ export class GitHubDiffCursorError extends Schema.TaggedErrorClass()( +export class GitHubDiffCommitError extends Schema.TaggedError()( "GitHubDiffCommitError", { command: Schema.Literal("gh"), @@ -158,7 +158,7 @@ export class GitHubDiffCommitError extends Schema.TaggedErrorClass()( +export class GitHubDiffRevisionsUnavailableError extends Schema.TaggedError()( "GitHubDiffRevisionsUnavailableError", { command: Schema.Literal("gh"), @@ -179,7 +179,7 @@ export class GitHubDiffRevisionsUnavailableError extends Schema.TaggedErrorClass } /** A blob exists, but expanding it would be unsafe or would not produce text. */ -export class GitHubDiffFileContentsUnavailableError extends Schema.TaggedErrorClass()( +export class GitHubDiffFileContentsUnavailableError extends Schema.TaggedError()( "GitHubDiffFileContentsUnavailableError", { command: Schema.Literal("gh"), @@ -205,7 +205,7 @@ export class GitHubDiffFileContentsUnavailableError extends Schema.TaggedErrorCl * name that is not one is refused here rather than escaped into something GitHub might read as a * qualifier of its own. */ -export class GitHubRepositorySelectorError extends Schema.TaggedErrorClass()( +export class GitHubRepositorySelectorError extends Schema.TaggedError()( "GitHubRepositorySelectorError", { command: Schema.Literal("gh"), @@ -223,7 +223,7 @@ export class GitHubRepositorySelectorError extends Schema.TaggedErrorClass()( +export class GitHubSubjectScopeError extends Schema.TaggedError()( "GitHubSubjectScopeError", { command: Schema.Literal("gh"), diff --git a/apps/server/src/pullRequest/GitLabPullRequestCli.ts b/apps/server/src/pullRequest/GitLabPullRequestCli.ts index 9f968dddbbc8..1242bf151b91 100644 --- a/apps/server/src/pullRequest/GitLabPullRequestCli.ts +++ b/apps/server/src/pullRequest/GitLabPullRequestCli.ts @@ -48,7 +48,7 @@ import type { ProviderListCursor } from "./PullRequestProvider.ts"; * Names the read that produced unusable output, so a failure reports the call it came from * rather than borrowing another operation's message. */ -export class GitLabMergeRequestReadError extends Schema.TaggedErrorClass()( +export class GitLabMergeRequestReadError extends Schema.TaggedError()( "GitLabMergeRequestReadError", { command: Schema.Literal("glab"), @@ -67,7 +67,7 @@ export class GitLabMergeRequestReadError extends Schema.TaggedErrorClass()( +export class GitLabViewerUnavailableError extends Schema.TaggedError()( "GitLabViewerUnavailableError", { command: Schema.Literal("glab"), @@ -85,7 +85,7 @@ export class GitLabViewerUnavailableError extends Schema.TaggedErrorClass()( +export class GitLabDiffRefsUnavailableError extends Schema.TaggedError()( "GitLabDiffRefsUnavailableError", { command: Schema.Literal("glab"), @@ -103,7 +103,7 @@ export class GitLabDiffRefsUnavailableError extends Schema.TaggedErrorClass()( +export class GitLabDiffCursorError extends Schema.TaggedError()( "GitLabDiffCursorError", { command: Schema.Literal("glab"), @@ -120,7 +120,7 @@ export class GitLabDiffCursorError extends Schema.TaggedErrorClass()( +export class GitLabDiffCommitError extends Schema.TaggedError()( "GitLabDiffCommitError", { command: Schema.Literal("glab"), @@ -137,7 +137,7 @@ export class GitLabDiffCommitError extends Schema.TaggedErrorClass()( +export class GitLabDiffCommitParentUnavailableError extends Schema.TaggedError()( "GitLabDiffCommitParentUnavailableError", { command: Schema.Literal("glab"), @@ -155,7 +155,7 @@ export class GitLabDiffCommitParentUnavailableError extends Schema.TaggedErrorCl } /** A blob exists, but expanding it would be unsafe or would not produce text. */ -export class GitLabDiffFileContentsUnavailableError extends Schema.TaggedErrorClass()( +export class GitLabDiffFileContentsUnavailableError extends Schema.TaggedError()( "GitLabDiffFileContentsUnavailableError", { command: Schema.Literal("glab"), diff --git a/apps/server/src/pullRequest/PullRequestProvider.ts b/apps/server/src/pullRequest/PullRequestProvider.ts index 644f3552cbc5..2e4eb9f86b8d 100644 --- a/apps/server/src/pullRequest/PullRequestProvider.ts +++ b/apps/server/src/pullRequest/PullRequestProvider.ts @@ -41,7 +41,7 @@ import { SourceControlProviderKind as SourceControlProviderKindSchema } from "@t * provider for the whole workspace, a rate limit pauses its host, and anything else is specific * to the request. */ -export class PullRequestProviderError extends Schema.TaggedErrorClass()( +export class PullRequestProviderError extends Schema.TaggedError()( "PullRequestProviderError", { provider: SourceControlProviderKindSchema, diff --git a/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts b/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts index 1fca5696ab67..3a134a438583 100644 --- a/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts +++ b/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts @@ -35,7 +35,7 @@ const DEFAULT_HOST_POWER_ACTIVE_INTERVAL_MS = 30_000; const DEFAULT_HOST_POWER_IDLE_INTERVAL_MS = 120_000; const STALE_CHECK_INTERVAL = Duration.seconds(30); -export class DesktopTelemetryDescriptorUnavailable extends Schema.TaggedErrorClass()( +export class DesktopTelemetryDescriptorUnavailable extends Schema.TaggedError()( "DesktopTelemetryDescriptorUnavailable", { mode: Schema.String, @@ -46,7 +46,7 @@ export class DesktopTelemetryDescriptorUnavailable extends Schema.TaggedErrorCla } } -export class DesktopTelemetryProtocolMismatch extends Schema.TaggedErrorClass()( +export class DesktopTelemetryProtocolMismatch extends Schema.TaggedError()( "DesktopTelemetryProtocolMismatch", { expectedVersion: Schema.Number, @@ -58,7 +58,7 @@ export class DesktopTelemetryProtocolMismatch extends Schema.TaggedErrorClass()( +export class DesktopTelemetryDecodeFailed extends Schema.TaggedError()( "DesktopTelemetryDecodeFailed", { cause: Schema.Defect(), @@ -69,7 +69,7 @@ export class DesktopTelemetryDecodeFailed extends Schema.TaggedErrorClass()( +export class DesktopTelemetryStreamFailed extends Schema.TaggedError()( "DesktopTelemetryStreamFailed", { fd: Schema.Number, @@ -81,7 +81,7 @@ export class DesktopTelemetryStreamFailed extends Schema.TaggedErrorClass()( +export class DesktopTelemetryStreamClosed extends Schema.TaggedError()( "DesktopTelemetryStreamClosed", { fd: Schema.Number, @@ -92,7 +92,7 @@ export class DesktopTelemetryStreamClosed extends Schema.TaggedErrorClass()( +export class DesktopTelemetryStale extends Schema.TaggedError()( "DesktopTelemetryStale", { fd: Schema.Number, @@ -111,7 +111,7 @@ export type DesktopTelemetryReceiverError = | DesktopTelemetryStreamFailed | DesktopTelemetryStreamClosed; -export class DesktopTelemetryControlFailed extends Schema.TaggedErrorClass()( +export class DesktopTelemetryControlFailed extends Schema.TaggedError()( "DesktopTelemetryControlFailed", { fd: Schema.Number, @@ -124,7 +124,7 @@ export class DesktopTelemetryControlFailed extends Schema.TaggedErrorClass()( +export class DesktopTelemetryControlStalled extends Schema.TaggedError()( "DesktopTelemetryControlStalled", { fd: Schema.Number, diff --git a/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts b/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts index e8d81cc4c1c0..e86164f3b84b 100644 --- a/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts +++ b/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts @@ -50,7 +50,7 @@ const MAX_RESTART_DELAY = Duration.seconds(10); const FAILURE_WINDOW_MS = 60_000; const MAX_FAILURES_PER_WINDOW = 5; -export class NativeTelemetrySpawnFailed extends Schema.TaggedErrorClass()( +export class NativeTelemetrySpawnFailed extends Schema.TaggedError()( "NativeTelemetrySpawnFailed", { path: Schema.String, @@ -62,7 +62,7 @@ export class NativeTelemetrySpawnFailed extends Schema.TaggedErrorClass()( +export class NativeTelemetryHandshakeTimedOut extends Schema.TaggedError()( "NativeTelemetryHandshakeTimedOut", { timeoutMs: Schema.Number, @@ -73,7 +73,7 @@ export class NativeTelemetryHandshakeTimedOut extends Schema.TaggedErrorClass()( +export class NativeTelemetryRequestTimedOut extends Schema.TaggedError()( "NativeTelemetryRequestTimedOut", { operation: Schema.Literals(["readHistory", "sampleNow"]), @@ -85,7 +85,7 @@ export class NativeTelemetryRequestTimedOut extends Schema.TaggedErrorClass()( +export class NativeTelemetryProtocolMismatch extends Schema.TaggedError()( "NativeTelemetryProtocolMismatch", { expectedVersion: Schema.Number, @@ -97,7 +97,7 @@ export class NativeTelemetryProtocolMismatch extends Schema.TaggedErrorClass()( +export class NativeTelemetryDecodeFailed extends Schema.TaggedError()( "NativeTelemetryDecodeFailed", { cause: Schema.Defect(), @@ -108,7 +108,7 @@ export class NativeTelemetryDecodeFailed extends Schema.TaggedErrorClass()( +export class NativeTelemetryCommandFailed extends Schema.TaggedError()( "NativeTelemetryCommandFailed", { operation: Schema.String, @@ -120,7 +120,7 @@ export class NativeTelemetryCommandFailed extends Schema.TaggedErrorClass()( +export class NativeTelemetryExited extends Schema.TaggedError()( "NativeTelemetryExited", { exitCode: Schema.Number, @@ -131,7 +131,7 @@ export class NativeTelemetryExited extends Schema.TaggedErrorClass()( +export class NativeTelemetryStreamClosed extends Schema.TaggedError()( "NativeTelemetryStreamClosed", {}, ) { @@ -140,7 +140,7 @@ export class NativeTelemetryStreamClosed extends Schema.TaggedErrorClass()( +export class NativeTelemetryUnavailable extends Schema.TaggedError()( "NativeTelemetryUnavailable", { reason: Schema.String, diff --git a/apps/server/src/resourceTelemetry/ResourceMonitorBinary.ts b/apps/server/src/resourceTelemetry/ResourceMonitorBinary.ts index c93bc54a1fba..d53fb4791b93 100644 --- a/apps/server/src/resourceTelemetry/ResourceMonitorBinary.ts +++ b/apps/server/src/resourceTelemetry/ResourceMonitorBinary.ts @@ -13,7 +13,7 @@ import * as Schema from "effect/Schema"; import { ServerConfig } from "../config.ts"; -export class ResourceMonitorBinaryUnsupported extends Schema.TaggedErrorClass()( +export class ResourceMonitorBinaryUnsupported extends Schema.TaggedError()( "ResourceMonitorBinaryUnsupported", { platform: Schema.String, @@ -25,7 +25,7 @@ export class ResourceMonitorBinaryUnsupported extends Schema.TaggedErrorClass()( +export class ResourceMonitorBinaryNotFound extends Schema.TaggedError()( "ResourceMonitorBinaryNotFound", { platform: Schema.String, @@ -38,7 +38,7 @@ export class ResourceMonitorBinaryNotFound extends Schema.TaggedErrorClass()( +export class ResourceMonitorBinaryNotExecutable extends Schema.TaggedError()( "ResourceMonitorBinaryNotExecutable", { path: Schema.String, diff --git a/apps/server/src/resourceTelemetry/ResourceTelemetry.ts b/apps/server/src/resourceTelemetry/ResourceTelemetry.ts index 4dd7e721d474..1f47d0f0ddef 100644 --- a/apps/server/src/resourceTelemetry/ResourceTelemetry.ts +++ b/apps/server/src/resourceTelemetry/ResourceTelemetry.ts @@ -38,7 +38,7 @@ import { } from "./ResourceTelemetryHistory.ts"; import { subscribeBeforeSnapshot } from "../utils/subscribeBeforeSnapshot.ts"; -export class ResourceTelemetryRefreshFailed extends Schema.TaggedErrorClass()( +export class ResourceTelemetryRefreshFailed extends Schema.TaggedError()( "ResourceTelemetryRefreshFailed", { operation: Schema.String, diff --git a/apps/server/src/serverRuntimeStartup.ts b/apps/server/src/serverRuntimeStartup.ts index 6bea823b19c3..333a780e2c9c 100644 --- a/apps/server/src/serverRuntimeStartup.ts +++ b/apps/server/src/serverRuntimeStartup.ts @@ -46,7 +46,7 @@ import { issueHeadlessServeAccessInfo, } from "./startupAccess.ts"; -export class ServerRuntimeStartupError extends Schema.TaggedErrorClass()( +export class ServerRuntimeStartupError extends Schema.TaggedError()( "ServerRuntimeStartupError", { mode: ServerConfig.RuntimeMode, diff --git a/apps/server/src/serverRuntimeState.ts b/apps/server/src/serverRuntimeState.ts index b32f3814547c..c2ecfc15e8f1 100644 --- a/apps/server/src/serverRuntimeState.ts +++ b/apps/server/src/serverRuntimeState.ts @@ -21,7 +21,7 @@ export const PersistedServerRuntimeState = Schema.Struct({ }); export type PersistedServerRuntimeState = typeof PersistedServerRuntimeState.Type; -export class ServerRuntimeStateError extends Schema.TaggedErrorClass()( +export class ServerRuntimeStateError extends Schema.TaggedError()( "ServerRuntimeStateError", { operation: Schema.Literals(["persist", "read", "decode", "clear"]), diff --git a/apps/server/src/sourceControl/AzureDevOpsCli.ts b/apps/server/src/sourceControl/AzureDevOpsCli.ts index 556dc4bf213d..32274ecdf8cc 100644 --- a/apps/server/src/sourceControl/AzureDevOpsCli.ts +++ b/apps/server/src/sourceControl/AzureDevOpsCli.ts @@ -29,7 +29,7 @@ const azureDevOpsCommandErrorFields = { cause: Schema.Defect(), }; -export class AzureDevOpsCliUnavailableError extends Schema.TaggedErrorClass()( +export class AzureDevOpsCliUnavailableError extends Schema.TaggedError()( "AzureDevOpsCliUnavailableError", azureDevOpsCommandErrorFields, ) { @@ -42,7 +42,7 @@ export class AzureDevOpsCliUnavailableError extends Schema.TaggedErrorClass()( +export class AzureDevOpsCliAuthenticationError extends Schema.TaggedError()( "AzureDevOpsCliAuthenticationError", azureDevOpsCommandErrorFields, ) { @@ -55,7 +55,7 @@ export class AzureDevOpsCliAuthenticationError extends Schema.TaggedErrorClass()( +export class AzureDevOpsCliRateLimitError extends Schema.TaggedError()( "AzureDevOpsCliRateLimitError", azureDevOpsCommandErrorFields, ) { @@ -68,7 +68,7 @@ export class AzureDevOpsCliRateLimitError extends Schema.TaggedErrorClass()( +export class AzureDevOpsPullRequestNotFoundError extends Schema.TaggedError()( "AzureDevOpsPullRequestNotFoundError", azureDevOpsCommandErrorFields, ) { @@ -81,7 +81,7 @@ export class AzureDevOpsPullRequestNotFoundError extends Schema.TaggedErrorClass } } -export class AzureDevOpsCommandFailedError extends Schema.TaggedErrorClass()( +export class AzureDevOpsCommandFailedError extends Schema.TaggedError()( "AzureDevOpsCommandFailedError", azureDevOpsCommandErrorFields, ) { @@ -137,7 +137,7 @@ const azureDevOpsDecodeErrorFields = { cause: Schema.Defect(), }; -export class AzureDevOpsPullRequestListDecodeError extends Schema.TaggedErrorClass()( +export class AzureDevOpsPullRequestListDecodeError extends Schema.TaggedError()( "AzureDevOpsPullRequestListDecodeError", { operation: Schema.Literal("listPullRequests"), @@ -153,7 +153,7 @@ export class AzureDevOpsPullRequestListDecodeError extends Schema.TaggedErrorCla } } -export class AzureDevOpsPullRequestDecodeError extends Schema.TaggedErrorClass()( +export class AzureDevOpsPullRequestDecodeError extends Schema.TaggedError()( "AzureDevOpsPullRequestDecodeError", { operation: Schema.Literal("getPullRequest"), @@ -175,7 +175,7 @@ const AzureDevOpsRepositoryDecodeOperation = Schema.Literals([ "createRepository", ]); -export class AzureDevOpsRepositoryDecodeError extends Schema.TaggedErrorClass()( +export class AzureDevOpsRepositoryDecodeError extends Schema.TaggedError()( "AzureDevOpsRepositoryDecodeError", { operation: AzureDevOpsRepositoryDecodeOperation, diff --git a/apps/server/src/sourceControl/BitbucketApi.ts b/apps/server/src/sourceControl/BitbucketApi.ts index 4573f2891f85..b30e934f8ce6 100644 --- a/apps/server/src/sourceControl/BitbucketApi.ts +++ b/apps/server/src/sourceControl/BitbucketApi.ts @@ -63,7 +63,7 @@ const BitbucketApiOperation = Schema.Literals([ ]); type BitbucketApiOperation = typeof BitbucketApiOperation.Type; -export class BitbucketRepositoryLocatorError extends Schema.TaggedErrorClass()( +export class BitbucketRepositoryLocatorError extends Schema.TaggedError()( "BitbucketRepositoryLocatorError", { repository: Schema.String, @@ -78,7 +78,7 @@ export class BitbucketRepositoryLocatorError extends Schema.TaggedErrorClass()( +export class BitbucketRequestError extends Schema.TaggedError()( "BitbucketRequestError", { operation: BitbucketApiOperation, @@ -94,7 +94,7 @@ export class BitbucketRequestError extends Schema.TaggedErrorClass()( +export class BitbucketResponseError extends Schema.TaggedError()( "BitbucketResponseError", { operation: BitbucketApiOperation, @@ -112,7 +112,7 @@ export class BitbucketResponseError extends Schema.TaggedErrorClass()( +export class BitbucketResponseBodyReadError extends Schema.TaggedError()( "BitbucketResponseBodyReadError", { operation: BitbucketApiOperation, @@ -129,7 +129,7 @@ export class BitbucketResponseBodyReadError extends Schema.TaggedErrorClass()( +export class BitbucketResponseDecodeError extends Schema.TaggedError()( "BitbucketResponseDecodeError", { operation: BitbucketApiOperation, @@ -146,7 +146,7 @@ export class BitbucketResponseDecodeError extends Schema.TaggedErrorClass()( +export class BitbucketRepositoryVcsResolveError extends Schema.TaggedError()( "BitbucketRepositoryVcsResolveError", { cwd: Schema.String, @@ -162,7 +162,7 @@ export class BitbucketRepositoryVcsResolveError extends Schema.TaggedErrorClass< } } -export class BitbucketRepositoryRemotesListError extends Schema.TaggedErrorClass()( +export class BitbucketRepositoryRemotesListError extends Schema.TaggedError()( "BitbucketRepositoryRemotesListError", { cwd: Schema.String, @@ -178,7 +178,7 @@ export class BitbucketRepositoryRemotesListError extends Schema.TaggedErrorClass } } -export class BitbucketRepositoryRemoteNotFoundError extends Schema.TaggedErrorClass()( +export class BitbucketRepositoryRemoteNotFoundError extends Schema.TaggedError()( "BitbucketRepositoryRemoteNotFoundError", { cwd: Schema.String, @@ -193,7 +193,7 @@ export class BitbucketRepositoryRemoteNotFoundError extends Schema.TaggedErrorCl } } -export class BitbucketPullRequestBodyReadError extends Schema.TaggedErrorClass()( +export class BitbucketPullRequestBodyReadError extends Schema.TaggedError()( "BitbucketPullRequestBodyReadError", { cwd: Schema.String, @@ -210,7 +210,7 @@ export class BitbucketPullRequestBodyReadError extends Schema.TaggedErrorClass()( +export class BitbucketCheckoutError extends Schema.TaggedError()( "BitbucketCheckoutError", { cwd: Schema.String, @@ -232,7 +232,7 @@ export class BitbucketCheckoutError extends Schema.TaggedErrorClass()( +export class BitbucketUntrustedUrlError extends Schema.TaggedError()( "BitbucketUntrustedUrlError", { /** The host only. A rejected hop is often a signed url, whose query carries a credential. */ diff --git a/apps/server/src/sourceControl/GitHubCli.ts b/apps/server/src/sourceControl/GitHubCli.ts index 974574cbd20e..398ca80f9abc 100644 --- a/apps/server/src/sourceControl/GitHubCli.ts +++ b/apps/server/src/sourceControl/GitHubCli.ts @@ -25,7 +25,7 @@ const gitHubCliFailureFields = { cause: Schema.Defect(), } as const; -export class GitHubCliUnavailableError extends Schema.TaggedErrorClass()( +export class GitHubCliUnavailableError extends Schema.TaggedError()( "GitHubCliUnavailableError", gitHubCliFailureFields, ) { @@ -38,7 +38,7 @@ export class GitHubCliUnavailableError extends Schema.TaggedErrorClass()( +export class GitHubCliAuthenticationError extends Schema.TaggedError()( "GitHubCliAuthenticationError", gitHubCliFailureFields, ) { @@ -51,7 +51,7 @@ export class GitHubCliAuthenticationError extends Schema.TaggedErrorClass()( +export class GitHubCliRateLimitError extends Schema.TaggedError()( "GitHubCliRateLimitError", gitHubCliFailureFields, ) { @@ -64,7 +64,7 @@ export class GitHubCliRateLimitError extends Schema.TaggedErrorClass()( +export class GitHubPullRequestNotFoundError extends Schema.TaggedError()( "GitHubPullRequestNotFoundError", gitHubCliFailureFields, ) { @@ -77,7 +77,7 @@ export class GitHubPullRequestNotFoundError extends Schema.TaggedErrorClass()( +export class GitHubCliCommandError extends Schema.TaggedError()( "GitHubCliCommandError", gitHubCliFailureFields, ) { @@ -96,7 +96,7 @@ const gitHubCliDecodeFields = { cause: Schema.Defect(), } as const; -export class GitHubPullRequestListDecodeError extends Schema.TaggedErrorClass()( +export class GitHubPullRequestListDecodeError extends Schema.TaggedError()( "GitHubPullRequestListDecodeError", gitHubCliDecodeFields, ) { @@ -109,7 +109,7 @@ export class GitHubPullRequestListDecodeError extends Schema.TaggedErrorClass()( +export class GitHubChangeRequestListDecodeError extends Schema.TaggedError()( "GitHubChangeRequestListDecodeError", gitHubCliDecodeFields, ) { @@ -122,7 +122,7 @@ export class GitHubChangeRequestListDecodeError extends Schema.TaggedErrorClass< } } -export class GitHubPullRequestDecodeError extends Schema.TaggedErrorClass()( +export class GitHubPullRequestDecodeError extends Schema.TaggedError()( "GitHubPullRequestDecodeError", gitHubCliDecodeFields, ) { @@ -135,7 +135,7 @@ export class GitHubPullRequestDecodeError extends Schema.TaggedErrorClass()( +export class GitHubRepositoryDecodeError extends Schema.TaggedError()( "GitHubRepositoryDecodeError", gitHubCliDecodeFields, ) { diff --git a/apps/server/src/sourceControl/GitLabCli.ts b/apps/server/src/sourceControl/GitLabCli.ts index 9a9fc3360247..651bd910ce1b 100644 --- a/apps/server/src/sourceControl/GitLabCli.ts +++ b/apps/server/src/sourceControl/GitLabCli.ts @@ -35,7 +35,7 @@ const gitLabCliDecodeErrorContext = { cause: Schema.Defect(), }; -export class GitLabCliUnavailableError extends Schema.TaggedErrorClass()( +export class GitLabCliUnavailableError extends Schema.TaggedError()( "GitLabCliUnavailableError", gitLabCliExecutionErrorContext, ) { @@ -48,7 +48,7 @@ export class GitLabCliUnavailableError extends Schema.TaggedErrorClass()( +export class GitLabCliAuthenticationError extends Schema.TaggedError()( "GitLabCliAuthenticationError", gitLabCliExecutionErrorContext, ) { @@ -61,7 +61,7 @@ export class GitLabCliAuthenticationError extends Schema.TaggedErrorClass()( +export class GitLabCliRateLimitError extends Schema.TaggedError()( "GitLabCliRateLimitError", gitLabCliExecutionErrorContext, ) { @@ -74,7 +74,7 @@ export class GitLabCliRateLimitError extends Schema.TaggedErrorClass()( +export class GitLabMergeRequestNotFoundError extends Schema.TaggedError()( "GitLabMergeRequestNotFoundError", { ...gitLabCliExecutionErrorContext, @@ -113,7 +113,7 @@ export class GitLabMergeRequestNotFoundError extends Schema.TaggedErrorClass()( +export class GitLabCliCommandError extends Schema.TaggedError()( "GitLabCliCommandError", gitLabCliExecutionErrorContext, ) { @@ -158,7 +158,7 @@ export class GitLabCliCommandError extends Schema.TaggedErrorClass()( +export class GitLabMergeRequestListDecodeError extends Schema.TaggedError()( "GitLabMergeRequestListDecodeError", { ...gitLabCliDecodeErrorContext, @@ -174,7 +174,7 @@ export class GitLabMergeRequestListDecodeError extends Schema.TaggedErrorClass()( +export class GitLabMergeRequestDecodeError extends Schema.TaggedError()( "GitLabMergeRequestDecodeError", { ...gitLabCliDecodeErrorContext, @@ -191,7 +191,7 @@ export class GitLabMergeRequestDecodeError extends Schema.TaggedErrorClass()( +export class GitLabRepositoryDecodeError extends Schema.TaggedError()( "GitLabRepositoryDecodeError", { ...gitLabCliDecodeErrorContext, @@ -208,7 +208,7 @@ export class GitLabRepositoryDecodeError extends Schema.TaggedErrorClass()( +export class GitLabNamespaceDecodeError extends Schema.TaggedError()( "GitLabNamespaceDecodeError", { ...gitLabCliDecodeErrorContext, diff --git a/apps/server/src/sourceControl/SourceControlRateLimit.ts b/apps/server/src/sourceControl/SourceControlRateLimit.ts index e8f7218de3b9..e71516946e7c 100644 --- a/apps/server/src/sourceControl/SourceControlRateLimit.ts +++ b/apps/server/src/sourceControl/SourceControlRateLimit.ts @@ -28,7 +28,7 @@ interface RateLimitEntry { readonly retryAt: number; } -export class SourceControlRateLimitPausedError extends Schema.TaggedErrorClass()( +export class SourceControlRateLimitPausedError extends Schema.TaggedError()( "SourceControlRateLimitPausedError", { provider: SourceControlProviderKindSchema, diff --git a/apps/server/src/telemetry/Identify.ts b/apps/server/src/telemetry/Identify.ts index b6c3d0066dff..1d12064a2429 100644 --- a/apps/server/src/telemetry/Identify.ts +++ b/apps/server/src/telemetry/Identify.ts @@ -23,7 +23,7 @@ const ClaudeJsonSchema = Schema.Struct({ export const TelemetryIdentitySource = Schema.Literals(["codex", "claude", "anonymous"]); export type TelemetryIdentitySource = typeof TelemetryIdentitySource.Type; -export class TelemetryIdentityReadError extends Schema.TaggedErrorClass()( +export class TelemetryIdentityReadError extends Schema.TaggedError()( "TelemetryIdentityReadError", { source: TelemetryIdentitySource, @@ -36,7 +36,7 @@ export class TelemetryIdentityReadError extends Schema.TaggedErrorClass()( +export class TelemetryIdentityDecodeError extends Schema.TaggedError()( "TelemetryIdentityDecodeError", { source: Schema.Literals(["codex", "claude"]), @@ -49,7 +49,7 @@ export class TelemetryIdentityDecodeError extends Schema.TaggedErrorClass()( +export class TelemetryAnonymousIdGenerationError extends Schema.TaggedError()( "TelemetryAnonymousIdGenerationError", { source: Schema.Literal("anonymous"), @@ -62,7 +62,7 @@ export class TelemetryAnonymousIdGenerationError extends Schema.TaggedErrorClass } } -export class TelemetryAnonymousIdPersistenceError extends Schema.TaggedErrorClass()( +export class TelemetryAnonymousIdPersistenceError extends Schema.TaggedError()( "TelemetryAnonymousIdPersistenceError", { source: Schema.Literal("anonymous"), @@ -75,7 +75,7 @@ export class TelemetryAnonymousIdPersistenceError extends Schema.TaggedErrorClas } } -export class TelemetryIdentityHashError extends Schema.TaggedErrorClass()( +export class TelemetryIdentityHashError extends Schema.TaggedError()( "TelemetryIdentityHashError", { source: TelemetryIdentitySource, diff --git a/apps/server/src/terminal/BunPtyAdapter.ts b/apps/server/src/terminal/BunPtyAdapter.ts index 88b68940de11..1a3f26ceb670 100644 --- a/apps/server/src/terminal/BunPtyAdapter.ts +++ b/apps/server/src/terminal/BunPtyAdapter.ts @@ -7,7 +7,7 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as PtyAdapter from "./PtyAdapter.ts"; -export class BunPtyUnsupportedPlatformError extends Schema.TaggedErrorClass()( +export class BunPtyUnsupportedPlatformError extends Schema.TaggedError()( "BunPtyUnsupportedPlatformError", { platform: Schema.Literal("win32"), @@ -18,7 +18,7 @@ export class BunPtyUnsupportedPlatformError extends Schema.TaggedErrorClass()( +export class BunPtyOperationUnavailableError extends Schema.TaggedError()( "BunPtyOperationUnavailableError", { operation: Schema.Literals(["write", "resize"]), diff --git a/apps/server/src/terminal/Manager.ts b/apps/server/src/terminal/Manager.ts index 64c2dbb913fb..d0dcefc39e4c 100644 --- a/apps/server/src/terminal/Manager.ts +++ b/apps/server/src/terminal/Manager.ts @@ -85,7 +85,7 @@ const TERMINAL_ENV_BLOCKLIST = new Set(["PORT", "ELECTRON_RENDERER_PORT", "ELECT const nowIso = Effect.map(DateTime.now, DateTime.formatIso); const MAX_TERMINAL_LABEL_LENGTH = 128; -class TerminalSubprocessCheckError extends Schema.TaggedErrorClass()( +class TerminalSubprocessCheckError extends Schema.TaggedError()( "TerminalSubprocessCheckError", { cause: Schema.optional(Schema.Defect()), @@ -107,7 +107,7 @@ class TerminalSubprocessCheckError extends Schema.TaggedErrorClass()( +class TerminalProcessSignalError extends Schema.TaggedError()( "TerminalProcessSignalError", { cause: Schema.optional(Schema.Defect()), diff --git a/apps/server/src/terminal/NodePtyAdapter.ts b/apps/server/src/terminal/NodePtyAdapter.ts index e9c462ab2c20..41f177e47586 100644 --- a/apps/server/src/terminal/NodePtyAdapter.ts +++ b/apps/server/src/terminal/NodePtyAdapter.ts @@ -9,7 +9,7 @@ import { HostProcessArchitecture, HostProcessPlatform } from "@t3tools/shared/ho import * as PtyAdapter from "./PtyAdapter.ts"; -export class NodePtyModuleLoadError extends Schema.TaggedErrorClass()( +export class NodePtyModuleLoadError extends Schema.TaggedError()( "NodePtyModuleLoadError", { platform: Schema.String, diff --git a/apps/server/src/terminal/PtyAdapter.ts b/apps/server/src/terminal/PtyAdapter.ts index 67147035bb5d..c56dfa93efe6 100644 --- a/apps/server/src/terminal/PtyAdapter.ts +++ b/apps/server/src/terminal/PtyAdapter.ts @@ -13,7 +13,7 @@ import * as Schema from "effect/Schema"; /** * PtySpawnError - Error type for PTY spawn failures. */ -export class PtySpawnError extends Schema.TaggedErrorClass()("PtySpawnError", { +export class PtySpawnError extends Schema.TaggedError()("PtySpawnError", { adapter: Schema.String, shell: Schema.optional(Schema.String), attemptedShells: Schema.optional(Schema.Array(Schema.String)), diff --git a/apps/server/src/textGeneration/OpenCodeTextGeneration.ts b/apps/server/src/textGeneration/OpenCodeTextGeneration.ts index e09c3db2cffc..99484ab8ee8b 100644 --- a/apps/server/src/textGeneration/OpenCodeTextGeneration.ts +++ b/apps/server/src/textGeneration/OpenCodeTextGeneration.ts @@ -48,7 +48,7 @@ const openCodeTextGenerationErrorContext = { cwd: Schema.String, }; -export class OpenCodeTextGenerationSessionRequestError extends Schema.TaggedErrorClass()( +export class OpenCodeTextGenerationSessionRequestError extends Schema.TaggedError()( "OpenCodeTextGenerationSessionRequestError", { ...openCodeTextGenerationErrorContext, @@ -60,7 +60,7 @@ export class OpenCodeTextGenerationSessionRequestError extends Schema.TaggedErro } } -export class OpenCodeTextGenerationSessionPayloadError extends Schema.TaggedErrorClass()( +export class OpenCodeTextGenerationSessionPayloadError extends Schema.TaggedError()( "OpenCodeTextGenerationSessionPayloadError", openCodeTextGenerationErrorContext, ) { @@ -76,7 +76,7 @@ const openCodePromptErrorContext = { modelId: Schema.String, }; -export class OpenCodeTextGenerationPromptRequestError extends Schema.TaggedErrorClass()( +export class OpenCodeTextGenerationPromptRequestError extends Schema.TaggedError()( "OpenCodeTextGenerationPromptRequestError", { ...openCodePromptErrorContext, @@ -88,7 +88,7 @@ export class OpenCodeTextGenerationPromptRequestError extends Schema.TaggedError } } -export class OpenCodeTextGenerationPromptResponseError extends Schema.TaggedErrorClass()( +export class OpenCodeTextGenerationPromptResponseError extends Schema.TaggedError()( "OpenCodeTextGenerationPromptResponseError", { ...openCodePromptErrorContext, @@ -102,7 +102,7 @@ export class OpenCodeTextGenerationPromptResponseError extends Schema.TaggedErro } } -export class OpenCodeTextGenerationEmptyOutputError extends Schema.TaggedErrorClass()( +export class OpenCodeTextGenerationEmptyOutputError extends Schema.TaggedError()( "OpenCodeTextGenerationEmptyOutputError", { ...openCodePromptErrorContext, diff --git a/apps/server/src/vcs/VcsProjectConfig.ts b/apps/server/src/vcs/VcsProjectConfig.ts index 6abce9a3ef31..98e65751185f 100644 --- a/apps/server/src/vcs/VcsProjectConfig.ts +++ b/apps/server/src/vcs/VcsProjectConfig.ts @@ -27,7 +27,7 @@ export interface VcsProjectConfigResolveInput { readonly requestedKind?: VcsDriverKindType | "auto"; } -export class VcsProjectConfigError extends Schema.TaggedErrorClass()( +export class VcsProjectConfigError extends Schema.TaggedError()( "VcsProjectConfigError", { operation: Schema.Literals(["inspect", "read", "decode"]), diff --git a/apps/server/src/workspace/WorkspaceEntries.ts b/apps/server/src/workspace/WorkspaceEntries.ts index 28a30481b1b6..11bb2276c75b 100644 --- a/apps/server/src/workspace/WorkspaceEntries.ts +++ b/apps/server/src/workspace/WorkspaceEntries.ts @@ -26,7 +26,7 @@ import { normalizeSearchQuery } from "@t3tools/shared/searchRanking"; import * as WorkspacePaths from "./WorkspacePaths.ts"; import * as WorkspaceSearchIndex from "./WorkspaceSearchIndex.ts"; -export class WorkspaceEntriesWindowsPathUnsupportedError extends Schema.TaggedErrorClass()( +export class WorkspaceEntriesWindowsPathUnsupportedError extends Schema.TaggedError()( "WorkspaceEntriesWindowsPathUnsupportedError", { cwd: Schema.optional(Schema.String), @@ -40,7 +40,7 @@ export class WorkspaceEntriesWindowsPathUnsupportedError extends Schema.TaggedEr } } -export class WorkspaceEntriesCurrentProjectRequiredError extends Schema.TaggedErrorClass()( +export class WorkspaceEntriesCurrentProjectRequiredError extends Schema.TaggedError()( "WorkspaceEntriesCurrentProjectRequiredError", { partialPath: Schema.String, @@ -51,7 +51,7 @@ export class WorkspaceEntriesCurrentProjectRequiredError extends Schema.TaggedEr } } -export class WorkspaceEntriesReadDirectoryError extends Schema.TaggedErrorClass()( +export class WorkspaceEntriesReadDirectoryError extends Schema.TaggedError()( "WorkspaceEntriesReadDirectoryError", { cwd: Schema.optional(Schema.String), diff --git a/apps/server/src/workspace/WorkspaceFileSystem.ts b/apps/server/src/workspace/WorkspaceFileSystem.ts index e2dc9cbbb390..cdb8044fac86 100644 --- a/apps/server/src/workspace/WorkspaceFileSystem.ts +++ b/apps/server/src/workspace/WorkspaceFileSystem.ts @@ -27,7 +27,7 @@ import * as WorkspacePaths from "./WorkspacePaths.ts"; const PROJECT_READ_FILE_MAX_BYTES = 1024 * 1024; -export class WorkspaceFileSystemOperationError extends Schema.TaggedErrorClass()( +export class WorkspaceFileSystemOperationError extends Schema.TaggedError()( "WorkspaceFileSystemOperationError", { workspaceRoot: Schema.String, @@ -52,7 +52,7 @@ export class WorkspaceFileSystemOperationError extends Schema.TaggedErrorClass()( +export class WorkspaceFilePathEscapeError extends Schema.TaggedError()( "WorkspaceFilePathEscapeError", { workspaceRoot: Schema.String, @@ -66,7 +66,7 @@ export class WorkspaceFilePathEscapeError extends Schema.TaggedErrorClass()( +export class WorkspacePathNotFileError extends Schema.TaggedError()( "WorkspacePathNotFileError", { workspaceRoot: Schema.String, @@ -79,7 +79,7 @@ export class WorkspacePathNotFileError extends Schema.TaggedErrorClass()( +export class WorkspaceBinaryFileError extends Schema.TaggedError()( "WorkspaceBinaryFileError", { workspaceRoot: Schema.String, diff --git a/apps/server/src/workspace/WorkspacePaths.ts b/apps/server/src/workspace/WorkspacePaths.ts index 5acf6677cdef..cd8ced48910d 100644 --- a/apps/server/src/workspace/WorkspacePaths.ts +++ b/apps/server/src/workspace/WorkspacePaths.ts @@ -15,7 +15,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -export class WorkspaceRootNotExistsError extends Schema.TaggedErrorClass()( +export class WorkspaceRootNotExistsError extends Schema.TaggedError()( "WorkspaceRootNotExistsError", { workspaceRoot: Schema.String, @@ -27,7 +27,7 @@ export class WorkspaceRootNotExistsError extends Schema.TaggedErrorClass()( +export class WorkspaceRootCreateFailedError extends Schema.TaggedError()( "WorkspaceRootCreateFailedError", { workspaceRoot: Schema.String, @@ -40,7 +40,7 @@ export class WorkspaceRootCreateFailedError extends Schema.TaggedErrorClass()( +export class WorkspaceRootStatFailedError extends Schema.TaggedError()( "WorkspaceRootStatFailedError", { workspaceRoot: Schema.String, @@ -54,7 +54,7 @@ export class WorkspaceRootStatFailedError extends Schema.TaggedErrorClass()( +export class WorkspaceRootNotDirectoryError extends Schema.TaggedError()( "WorkspaceRootNotDirectoryError", { workspaceRoot: Schema.String, @@ -66,7 +66,7 @@ export class WorkspaceRootNotDirectoryError extends Schema.TaggedErrorClass()( +export class WorkspacePathOutsideRootError extends Schema.TaggedError()( "WorkspacePathOutsideRootError", { workspaceRoot: Schema.String, diff --git a/apps/server/src/workspace/WorkspaceSearchIndex.ts b/apps/server/src/workspace/WorkspaceSearchIndex.ts index eeb2df342c2c..8a2548eb2f29 100644 --- a/apps/server/src/workspace/WorkspaceSearchIndex.ts +++ b/apps/server/src/workspace/WorkspaceSearchIndex.ts @@ -33,7 +33,7 @@ const WORKSPACE_INDEX_IDLE_TTL = "15 minutes"; const CONTENT_SEARCH_TIME_BUDGET_MS = 250; const CONTENT_SEARCH_MAX_MATCHES_PER_FILE = 100; -export class WorkspaceSearchIndexCreateFailed extends Schema.TaggedErrorClass()( +export class WorkspaceSearchIndexCreateFailed extends Schema.TaggedError()( "WorkspaceSearchIndexCreateFailed", { cwd: Schema.String, @@ -46,7 +46,7 @@ export class WorkspaceSearchIndexCreateFailed extends Schema.TaggedErrorClass()( +export class WorkspaceSearchIndexScanTimedOut extends Schema.TaggedError()( "WorkspaceSearchIndexScanTimedOut", { cwd: Schema.String, @@ -58,7 +58,7 @@ export class WorkspaceSearchIndexScanTimedOut extends Schema.TaggedErrorClass()( +export class WorkspaceSearchIndexSearchFailed extends Schema.TaggedError()( "WorkspaceSearchIndexSearchFailed", { cwd: Schema.String, @@ -73,7 +73,7 @@ export class WorkspaceSearchIndexSearchFailed extends Schema.TaggedErrorClass()( +export class WorkspaceSearchIndexRefreshFailed extends Schema.TaggedError()( "WorkspaceSearchIndexRefreshFailed", { cwd: Schema.String, @@ -86,7 +86,7 @@ export class WorkspaceSearchIndexRefreshFailed extends Schema.TaggedErrorClass()( +export class WorkspaceSearchIndexDestroyFailed extends Schema.TaggedError()( "WorkspaceSearchIndexDestroyFailed", { cwd: Schema.String, diff --git a/apps/web/package.json b/apps/web/package.json index 598feaec0ce9..8d3d3a1da0c7 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -39,8 +39,8 @@ "jszip": "3.10.1", "lexical": "^0.41.0", "lucide-react": "^0.564.0", - "react": "19.2.6", - "react-dom": "19.2.6", + "react": "19.2.8", + "react-dom": "19.2.8", "react-markdown": "^10.1.0", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", diff --git a/apps/web/src/browser/browserRecording.ts b/apps/web/src/browser/browserRecording.ts index 69297cfdbb85..a153b4cb0e73 100644 --- a/apps/web/src/browser/browserRecording.ts +++ b/apps/web/src/browser/browserRecording.ts @@ -11,7 +11,7 @@ import { previewBridge } from "~/components/preview/previewBridge"; import { appAtomRegistry } from "~/rpc/atomRegistry"; import { useBrowserSurfaceStore } from "./browserSurfaceStore"; -export class BrowserRecordingUnavailableError extends Schema.TaggedErrorClass()( +export class BrowserRecordingUnavailableError extends Schema.TaggedError()( "BrowserRecordingUnavailableError", { tabId: Schema.String, @@ -22,7 +22,7 @@ export class BrowserRecordingUnavailableError extends Schema.TaggedErrorClass
()( +export class BrowserRecordingConflictError extends Schema.TaggedError()( "BrowserRecordingConflictError", { requestedTabId: Schema.String, @@ -34,7 +34,7 @@ export class BrowserRecordingConflictError extends Schema.TaggedErrorClass()( +export class BrowserRecordingCanvasUnavailableError extends Schema.TaggedError()( "BrowserRecordingCanvasUnavailableError", { tabId: Schema.String, @@ -47,7 +47,7 @@ export class BrowserRecordingCanvasUnavailableError extends Schema.TaggedErrorCl } } -export class BrowserRecordingOperationError extends Schema.TaggedErrorClass()( +export class BrowserRecordingOperationError extends Schema.TaggedError()( "BrowserRecordingOperationError", { operation: Schema.Literals([ diff --git a/apps/web/src/browser/previewWebviewConfigState.ts b/apps/web/src/browser/previewWebviewConfigState.ts index 6f1cf058e38c..906a30e08117 100644 --- a/apps/web/src/browser/previewWebviewConfigState.ts +++ b/apps/web/src/browser/previewWebviewConfigState.ts @@ -14,7 +14,7 @@ import { previewBridge } from "~/components/preview/previewBridge"; const PREVIEW_CONFIG_STALE_TIME_MS = 5 * 60_000; const PREVIEW_CONFIG_IDLE_TTL_MS = 10 * 60_000; -export class PreviewWebviewBridgeUnavailableError extends Schema.TaggedErrorClass()( +export class PreviewWebviewBridgeUnavailableError extends Schema.TaggedError()( "PreviewWebviewBridgeUnavailableError", { environmentId: Schema.String }, ) { @@ -23,7 +23,7 @@ export class PreviewWebviewBridgeUnavailableError extends Schema.TaggedErrorClas } } -export class PreviewWebviewConfigLoadError extends Schema.TaggedErrorClass()( +export class PreviewWebviewConfigLoadError extends Schema.TaggedError()( "PreviewWebviewConfigLoadError", { environmentId: Schema.String, diff --git a/apps/web/src/cloud/publicConfig.ts b/apps/web/src/cloud/publicConfig.ts index 2caf4f52f360..8c3b9073e3b4 100644 --- a/apps/web/src/cloud/publicConfig.ts +++ b/apps/web/src/cloud/publicConfig.ts @@ -2,7 +2,7 @@ import { relayClerkTokenOptions } from "@t3tools/shared/relayAuth"; import { normalizeSecureRelayUrl } from "@t3tools/shared/relayUrl"; import * as Schema from "effect/Schema"; -export class CloudPublicConfigMissingError extends Schema.TaggedErrorClass()( +export class CloudPublicConfigMissingError extends Schema.TaggedError()( "CloudPublicConfigMissingError", { key: Schema.Literal("T3CODE_CLERK_JWT_TEMPLATE"), diff --git a/apps/web/src/cloud/relayClientInstallDialog.ts b/apps/web/src/cloud/relayClientInstallDialog.ts index b1b0c6607e35..fa09efee2594 100644 --- a/apps/web/src/cloud/relayClientInstallDialog.ts +++ b/apps/web/src/cloud/relayClientInstallDialog.ts @@ -5,7 +5,7 @@ import { } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -export class RelayClientInstallConfirmationConflictError extends Schema.TaggedErrorClass()( +export class RelayClientInstallConfirmationConflictError extends Schema.TaggedError()( "RelayClientInstallConfirmationConflictError", { requestedVersion: Schema.String, diff --git a/apps/web/src/components/DiffWorkerPoolProvider.tsx b/apps/web/src/components/DiffWorkerPoolProvider.tsx index 3ec748c6bcb2..694cff2dbc8f 100644 --- a/apps/web/src/components/DiffWorkerPoolProvider.tsx +++ b/apps/web/src/components/DiffWorkerPoolProvider.tsx @@ -5,7 +5,7 @@ import { useEffect, useMemo, type ReactNode } from "react"; import { useTheme } from "../hooks/useTheme"; import { resolveDiffThemeName, type DiffThemeName } from "../lib/diffRendering"; -export class DiffWorkerError extends Schema.TaggedErrorClass()("DiffWorkerError", { +export class DiffWorkerError extends Schema.TaggedError()("DiffWorkerError", { operation: Schema.Literals(["create-worker", "get-render-options", "set-render-options"]), themeName: Schema.Literals(["pierre-light", "pierre-dark"]), cause: Schema.Defect(), diff --git a/apps/web/src/components/preview/openTerminalLinkInPreview.ts b/apps/web/src/components/preview/openTerminalLinkInPreview.ts index f4e0373a73c3..7b4e7889625d 100644 --- a/apps/web/src/components/preview/openTerminalLinkInPreview.ts +++ b/apps/web/src/components/preview/openTerminalLinkInPreview.ts @@ -15,7 +15,7 @@ const terminalLinkErrorContext = { cause: Schema.Defect(), }; -export class TerminalLinkContextMenuShowError extends Schema.TaggedErrorClass()( +export class TerminalLinkContextMenuShowError extends Schema.TaggedError()( "TerminalLinkContextMenuShowError", terminalLinkErrorContext, ) { @@ -24,7 +24,7 @@ export class TerminalLinkContextMenuShowError extends Schema.TaggedErrorClass()( +export class TerminalLinkPreviewOpenError extends Schema.TaggedError()( "TerminalLinkPreviewOpenError", terminalLinkErrorContext, ) { diff --git a/apps/web/src/components/preview/previewAutomationErrors.ts b/apps/web/src/components/preview/previewAutomationErrors.ts index dcf35de53f2d..e8ce994a63dc 100644 --- a/apps/web/src/components/preview/previewAutomationErrors.ts +++ b/apps/web/src/components/preview/previewAutomationErrors.ts @@ -18,7 +18,7 @@ export interface PreviewAutomationOperationContext { readonly tabId: Exclude | null; } -export class PreviewAutomationOverlayTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationOverlayTimeoutError extends Schema.TaggedError()( "PreviewAutomationOverlayTimeoutError", { requestId: TrimmedNonEmptyString, @@ -36,7 +36,7 @@ export class PreviewAutomationOverlayTimeoutError extends Schema.TaggedErrorClas } } -export class PreviewAutomationNavigationTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationNavigationTimeoutError extends Schema.TaggedError()( "PreviewAutomationNavigationTimeoutError", { requestId: TrimmedNonEmptyString, @@ -56,7 +56,7 @@ export class PreviewAutomationNavigationTimeoutError extends Schema.TaggedErrorC } } -export class PreviewAutomationViewportTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationViewportTimeoutError extends Schema.TaggedError()( "PreviewAutomationViewportTimeoutError", { requestId: TrimmedNonEmptyString, @@ -75,7 +75,7 @@ export class PreviewAutomationViewportTimeoutError extends Schema.TaggedErrorCla } } -export class PreviewAutomationTargetUnavailableError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTargetUnavailableError extends Schema.TaggedError()( "PreviewAutomationTargetUnavailableError", { requestId: TrimmedNonEmptyString, @@ -95,7 +95,7 @@ export class PreviewAutomationTargetUnavailableError extends Schema.TaggedErrorC } } -export class PreviewAutomationRecordingNotActiveError extends Schema.TaggedErrorClass()( +export class PreviewAutomationRecordingNotActiveError extends Schema.TaggedError()( "PreviewAutomationRecordingNotActiveError", { requestId: TrimmedNonEmptyString, @@ -113,7 +113,7 @@ export class PreviewAutomationRecordingNotActiveError extends Schema.TaggedError } } -export class PreviewAutomationTargetNotEditableHostError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTargetNotEditableHostError extends Schema.TaggedError()( "PreviewAutomationTargetNotEditableHostError", { requestId: TrimmedNonEmptyString, @@ -168,7 +168,7 @@ const targetNotEditableDiagnostics = ( }; }; -export class PreviewAutomationOperationError extends Schema.TaggedErrorClass()( +export class PreviewAutomationOperationError extends Schema.TaggedError()( "PreviewAutomationOperationError", { requestId: TrimmedNonEmptyString, diff --git a/apps/web/src/components/preview/usePreviewSession.ts b/apps/web/src/components/preview/usePreviewSession.ts index 7f1a997f2c24..71597101dec8 100644 --- a/apps/web/src/components/preview/usePreviewSession.ts +++ b/apps/web/src/components/preview/usePreviewSession.ts @@ -13,7 +13,7 @@ import { } from "~/previewStateStore"; import { previewEnvironment } from "~/state/preview"; -class PreviewSessionThreadKeyParseError extends Schema.TaggedErrorClass()( +class PreviewSessionThreadKeyParseError extends Schema.TaggedError()( "PreviewSessionThreadKeyParseError", { threadKey: Schema.String }, ) { diff --git a/apps/web/src/editorPreferences.ts b/apps/web/src/editorPreferences.ts index d691ddb31535..8e7be4070215 100644 --- a/apps/web/src/editorPreferences.ts +++ b/apps/web/src/editorPreferences.ts @@ -14,7 +14,7 @@ import { useAtomCommand } from "./state/use-atom-command"; const LAST_EDITOR_KEY = "t3code:last-editor"; -export class PreferredEditorEnvironmentRequiredError extends Schema.TaggedErrorClass()( +export class PreferredEditorEnvironmentRequiredError extends Schema.TaggedError()( "PreferredEditorEnvironmentRequiredError", { targetPath: Schema.String, @@ -25,7 +25,7 @@ export class PreferredEditorEnvironmentRequiredError extends Schema.TaggedErrorC } } -export class PreferredEditorUnavailableError extends Schema.TaggedErrorClass()( +export class PreferredEditorUnavailableError extends Schema.TaggedError()( "PreferredEditorUnavailableError", { environmentId: EnvironmentId, diff --git a/apps/web/src/environments/primary/auth.ts b/apps/web/src/environments/primary/auth.ts index f9381bcad714..b2b9e03111b6 100644 --- a/apps/web/src/environments/primary/auth.ts +++ b/apps/web/src/environments/primary/auth.ts @@ -35,7 +35,7 @@ const PrimaryEnvironmentRequestOperation = Schema.Literals([ ]); type PrimaryEnvironmentRequestOperation = typeof PrimaryEnvironmentRequestOperation.Type; -export class PrimaryEnvironmentRequestError extends Schema.TaggedErrorClass()( +export class PrimaryEnvironmentRequestError extends Schema.TaggedError()( "PrimaryEnvironmentRequestError", { operation: PrimaryEnvironmentRequestOperation, @@ -68,7 +68,7 @@ export class PrimaryEnvironmentRequestError extends Schema.TaggedErrorClass()( +export class PrimaryEnvironmentPairingCredentialRejectedError extends Schema.TaggedError()( "PrimaryEnvironmentPairingCredentialRejectedError", { providedLength: Schema.Number, @@ -84,7 +84,7 @@ export const isPrimaryEnvironmentPairingCredentialRejectedError = Schema.is( PrimaryEnvironmentPairingCredentialRejectedError, ); -export class PrimaryEnvironmentAuthSessionTimeoutError extends Schema.TaggedErrorClass()( +export class PrimaryEnvironmentAuthSessionTimeoutError extends Schema.TaggedError()( "PrimaryEnvironmentAuthSessionTimeoutError", { timeoutMs: Schema.Number, @@ -100,7 +100,7 @@ export const isPrimaryEnvironmentAuthSessionTimeoutError = Schema.is( PrimaryEnvironmentAuthSessionTimeoutError, ); -export class PrimaryEnvironmentPairingCredentialRequiredError extends Schema.TaggedErrorClass()( +export class PrimaryEnvironmentPairingCredentialRequiredError extends Schema.TaggedError()( "PrimaryEnvironmentPairingCredentialRequiredError", { providedLength: Schema.Number, diff --git a/apps/web/src/environments/primary/target.ts b/apps/web/src/environments/primary/target.ts index cc002419fe78..fa3bdb59ee08 100644 --- a/apps/web/src/environments/primary/target.ts +++ b/apps/web/src/environments/primary/target.ts @@ -16,7 +16,7 @@ const PrimaryEnvironmentUrlKind = Schema.Literals([ ]); type PrimaryEnvironmentUrlKind = typeof PrimaryEnvironmentUrlKind.Type; -export class PrimaryEnvironmentUrlInvalidError extends Schema.TaggedErrorClass()( +export class PrimaryEnvironmentUrlInvalidError extends Schema.TaggedError()( "PrimaryEnvironmentUrlInvalidError", { source: PrimaryEnvironmentTargetSource, @@ -29,7 +29,7 @@ export class PrimaryEnvironmentUrlInvalidError extends Schema.TaggedErrorClass

()( +export class PrimaryEnvironmentProtocolUnsupportedError extends Schema.TaggedError()( "PrimaryEnvironmentProtocolUnsupportedError", { source: PrimaryEnvironmentTargetSource, @@ -41,7 +41,7 @@ export class PrimaryEnvironmentProtocolUnsupportedError extends Schema.TaggedErr } } -export class DesktopEnvironmentBootstrapIncompleteError extends Schema.TaggedErrorClass()( +export class DesktopEnvironmentBootstrapIncompleteError extends Schema.TaggedError()( "DesktopEnvironmentBootstrapIncompleteError", { hasHttpBaseUrl: Schema.Boolean, diff --git a/apps/web/src/hooks/useCopyToClipboard.ts b/apps/web/src/hooks/useCopyToClipboard.ts index ef66410f7db4..129fa22a161c 100644 --- a/apps/web/src/hooks/useCopyToClipboard.ts +++ b/apps/web/src/hooks/useCopyToClipboard.ts @@ -1,7 +1,7 @@ import * as React from "react"; import * as Schema from "effect/Schema"; -export class ClipboardApiUnavailableError extends Schema.TaggedErrorClass()( +export class ClipboardApiUnavailableError extends Schema.TaggedError()( "ClipboardApiUnavailableError", { target: Schema.String, @@ -12,7 +12,7 @@ export class ClipboardApiUnavailableError extends Schema.TaggedErrorClass()( +export class ClipboardWriteError extends Schema.TaggedError()( "ClipboardWriteError", { target: Schema.String, @@ -24,7 +24,7 @@ export class ClipboardWriteError extends Schema.TaggedErrorClass()( +export class ClipboardReadUnavailableError extends Schema.TaggedError()( "ClipboardReadUnavailableError", { target: Schema.String, @@ -35,7 +35,7 @@ export class ClipboardReadUnavailableError extends Schema.TaggedErrorClass()( +export class ClipboardReadError extends Schema.TaggedError()( "ClipboardReadError", { target: Schema.String, diff --git a/apps/web/src/hooks/useLocalStorage.ts b/apps/web/src/hooks/useLocalStorage.ts index 3099e73ff43f..b4f573307840 100644 --- a/apps/web/src/hooks/useLocalStorage.ts +++ b/apps/web/src/hooks/useLocalStorage.ts @@ -2,7 +2,7 @@ import * as Schema from "effect/Schema"; import * as Record from "effect/Record"; import { useCallback, useMemo, useSyncExternalStore } from "react"; -export class LocalStorageOperationError extends Schema.TaggedErrorClass()( +export class LocalStorageOperationError extends Schema.TaggedError()( "LocalStorageOperationError", { operation: Schema.Literals(["read", "decode", "encode", "update", "write", "remove", "notify"]), diff --git a/apps/web/src/hooks/useTheme.ts b/apps/web/src/hooks/useTheme.ts index 8696e41b71d1..8872c3812a22 100644 --- a/apps/web/src/hooks/useTheme.ts +++ b/apps/web/src/hooks/useTheme.ts @@ -64,7 +64,7 @@ function themeHalvesSignature(halves: ThemeHalves | null): string { const THEME_COLOR_META_NAME = "theme-color"; const DYNAMIC_THEME_COLOR_SELECTOR = `meta[name="${THEME_COLOR_META_NAME}"][data-dynamic-theme-color="true"]`; -export class ThemeStorageError extends Schema.TaggedErrorClass()( +export class ThemeStorageError extends Schema.TaggedError()( "ThemeStorageError", { operation: Schema.Literals(["read", "write"]), @@ -80,7 +80,7 @@ export class ThemeStorageError extends Schema.TaggedErrorClass()( +export class DesktopThemeSyncError extends Schema.TaggedError()( "DesktopThemeSyncError", { theme: ThemePreference, diff --git a/apps/web/src/hooks/useThreadActions.ts b/apps/web/src/hooks/useThreadActions.ts index 569b4be96e62..80485969af04 100644 --- a/apps/web/src/hooks/useThreadActions.ts +++ b/apps/web/src/hooks/useThreadActions.ts @@ -39,7 +39,7 @@ import { stackedThreadToast, toastManager } from "../components/ui/toast"; import { useClientSettings } from "./useSettings"; import { useAtomCommand } from "../state/use-atom-command"; -export class ThreadArchiveBlockedError extends Schema.TaggedErrorClass()( +export class ThreadArchiveBlockedError extends Schema.TaggedError()( "ThreadArchiveBlockedError", { environmentId: EnvironmentId, @@ -51,7 +51,7 @@ export class ThreadArchiveBlockedError extends Schema.TaggedErrorClass()( +export class ThreadSettlementUnsupportedError extends Schema.TaggedError()( "ThreadSettlementUnsupportedError", { environmentId: EnvironmentId, @@ -63,7 +63,7 @@ export class ThreadSettlementUnsupportedError extends Schema.TaggedErrorClass()( +export class ThreadSettleBlockedError extends Schema.TaggedError()( "ThreadSettleBlockedError", { environmentId: EnvironmentId, @@ -75,7 +75,7 @@ export class ThreadSettleBlockedError extends Schema.TaggedErrorClass()( +export class ThreadSnoozeUnsupportedError extends Schema.TaggedError()( "ThreadSnoozeUnsupportedError", { environmentId: EnvironmentId, @@ -87,7 +87,7 @@ export class ThreadSnoozeUnsupportedError extends Schema.TaggedErrorClass()( +export class ThreadSnoozeBlockedError extends Schema.TaggedError()( "ThreadSnoozeBlockedError", { environmentId: EnvironmentId, @@ -111,7 +111,7 @@ function topOfPinnedRunOrderKey(): string | undefined { return pinOrderKeyBetween(null, firstKey) ?? undefined; } -export class ThreadPinningUnsupportedError extends Schema.TaggedErrorClass()( +export class ThreadPinningUnsupportedError extends Schema.TaggedError()( "ThreadPinningUnsupportedError", { environmentId: EnvironmentId, @@ -123,7 +123,7 @@ export class ThreadPinningUnsupportedError extends Schema.TaggedErrorClass()( +export class ThreadPinReorderUnsupportedError extends Schema.TaggedError()( "ThreadPinReorderUnsupportedError", { environmentId: EnvironmentId, diff --git a/apps/web/src/lib/openPullRequestLink.ts b/apps/web/src/lib/openPullRequestLink.ts index c8ec1b7a628c..2bdf2795777a 100644 --- a/apps/web/src/lib/openPullRequestLink.ts +++ b/apps/web/src/lib/openPullRequestLink.ts @@ -13,7 +13,7 @@ import type { EnvironmentProject } from "@t3tools/client-runtime/state/shell"; import { useProjects, useServerConfigs } from "../state/entities"; import { usePrimaryEnvironmentId } from "../state/environments"; -export class PullRequestLinkOpenError extends Schema.TaggedErrorClass()( +export class PullRequestLinkOpenError extends Schema.TaggedError()( "PullRequestLinkOpenError", { targetOrigin: Schema.NullOr(Schema.String), diff --git a/apps/web/src/state/desktopNetworkAccess.ts b/apps/web/src/state/desktopNetworkAccess.ts index 07580fcd1645..3f48cd27fd4f 100644 --- a/apps/web/src/state/desktopNetworkAccess.ts +++ b/apps/web/src/state/desktopNetworkAccess.ts @@ -21,7 +21,7 @@ export interface DesktopNetworkAccessSnapshot { readonly serverExposureState: DesktopServerExposureState; } -class DesktopNetworkAccessUnavailableError extends Schema.TaggedErrorClass()( +class DesktopNetworkAccessUnavailableError extends Schema.TaggedError()( "DesktopNetworkAccessUnavailableError", {}, ) { @@ -30,7 +30,7 @@ class DesktopNetworkAccessUnavailableError extends Schema.TaggedErrorClass()( +class DesktopServerExposureStateLoadError extends Schema.TaggedError()( "DesktopServerExposureStateLoadError", { cause: Schema.Defect() }, ) { @@ -39,7 +39,7 @@ class DesktopServerExposureStateLoadError extends Schema.TaggedErrorClass()( +class DesktopAdvertisedEndpointsLoadError extends Schema.TaggedError()( "DesktopAdvertisedEndpointsLoadError", { cause: Schema.Defect() }, ) { diff --git a/apps/web/src/state/desktopSshHosts.ts b/apps/web/src/state/desktopSshHosts.ts index 8e4022cbecf8..ad0952092946 100644 --- a/apps/web/src/state/desktopSshHosts.ts +++ b/apps/web/src/state/desktopSshHosts.ts @@ -5,7 +5,7 @@ import { Atom } from "effect/unstable/reactivity"; type DesktopSshDiscoveryBridge = Pick; -class DesktopSshDiscoveryUnavailableError extends Schema.TaggedErrorClass()( +class DesktopSshDiscoveryUnavailableError extends Schema.TaggedError()( "DesktopSshDiscoveryUnavailableError", {}, ) { @@ -14,7 +14,7 @@ class DesktopSshDiscoveryUnavailableError extends Schema.TaggedErrorClass()( +class DesktopSshDiscoveryError extends Schema.TaggedError()( "DesktopSshDiscoveryError", { cause: Schema.Defect() }, ) { diff --git a/apps/web/src/state/desktopUpdate.ts b/apps/web/src/state/desktopUpdate.ts index a7b9ed483b65..9c2cfc5f5fd1 100644 --- a/apps/web/src/state/desktopUpdate.ts +++ b/apps/web/src/state/desktopUpdate.ts @@ -11,7 +11,7 @@ type DesktopUpdateBridge = Pick()( +export class DesktopUpdateStateReadError extends Schema.TaggedError()( "DesktopUpdateStateReadError", { attemptCount: Schema.Number, diff --git a/apps/web/src/state/desktopWslState.ts b/apps/web/src/state/desktopWslState.ts index 90964dc29784..876690808188 100644 --- a/apps/web/src/state/desktopWslState.ts +++ b/apps/web/src/state/desktopWslState.ts @@ -9,7 +9,7 @@ const DESKTOP_WSL_STATE_STALE_TIME_MS = 30_000; type DesktopWslStateBridge = Pick; -class DesktopWslStateUnavailableError extends Schema.TaggedErrorClass()( +class DesktopWslStateUnavailableError extends Schema.TaggedError()( "DesktopWslStateUnavailableError", {}, ) { @@ -18,7 +18,7 @@ class DesktopWslStateUnavailableError extends Schema.TaggedErrorClass()( +class DesktopWslStateLoadError extends Schema.TaggedError()( "DesktopWslStateLoadError", { cause: Schema.Defect() }, ) { diff --git a/apps/web/src/themePalette.ts b/apps/web/src/themePalette.ts index 8402aeb2001b..2918a4560169 100644 --- a/apps/web/src/themePalette.ts +++ b/apps/web/src/themePalette.ts @@ -1467,7 +1467,7 @@ export function themeIdFromName(name: string): string { return normalized || "custom-theme"; } -export class ThemeLibraryStorageError extends Schema.TaggedErrorClass()( +export class ThemeLibraryStorageError extends Schema.TaggedError()( "ThemeLibraryStorageError", { storageKey: Schema.String, diff --git a/infra/relay/scripts/deploy.ts b/infra/relay/scripts/deploy.ts index 1942b8735e37..c828db1f2350 100644 --- a/infra/relay/scripts/deploy.ts +++ b/infra/relay/scripts/deploy.ts @@ -53,20 +53,17 @@ export const RelayDeployResult = Schema.Literals([ ]); export type RelayDeployResult = typeof RelayDeployResult.Type; -export class RelayDeployError extends Schema.TaggedErrorClass()( - "RelayDeployError", - { - source: Schema.Literals(["alchemy_state", "alchemy_apply"]), - stage: Schema.String, - missingFields: Schema.Array(RelayDeployOutputField), - }, -) { +export class RelayDeployError extends Schema.TaggedError()("RelayDeployError", { + source: Schema.Literals(["alchemy_state", "alchemy_apply"]), + stage: Schema.String, + missingFields: Schema.Array(RelayDeployOutputField), +}) { override get message(): string { return `Relay deploy output from '${this.source}' for stage '${this.stage}' is missing required public config fields: ${this.missingFields.join(", ")}`; } } -export class RelayDeployPublicConfigUnavailableError extends Schema.TaggedErrorClass()( +export class RelayDeployPublicConfigUnavailableError extends Schema.TaggedError()( "RelayDeployPublicConfigUnavailableError", { result: RelayDeployResult, diff --git a/infra/relay/src/agentActivity/AgentActivityRows.ts b/infra/relay/src/agentActivity/AgentActivityRows.ts index 54ba1df50600..e25c8e37b198 100644 --- a/infra/relay/src/agentActivity/AgentActivityRows.ts +++ b/infra/relay/src/agentActivity/AgentActivityRows.ts @@ -12,7 +12,7 @@ import { and, desc, eq, isNull, lt, sql } from "drizzle-orm"; import * as RelayDb from "../db.ts"; import { relayAgentActivityRows, relayEnvironmentLinks } from "../persistence/schema.ts"; -export class AgentActivityRowUpsertPersistenceError extends Schema.TaggedErrorClass()( +export class AgentActivityRowUpsertPersistenceError extends Schema.TaggedError()( "AgentActivityRowUpsertPersistenceError", { environmentId: Schema.String, @@ -25,7 +25,7 @@ export class AgentActivityRowUpsertPersistenceError extends Schema.TaggedErrorCl } } -export class AgentActivityRowDeletePersistenceError extends Schema.TaggedErrorClass()( +export class AgentActivityRowDeletePersistenceError extends Schema.TaggedError()( "AgentActivityRowDeletePersistenceError", { environmentId: Schema.String, @@ -38,7 +38,7 @@ export class AgentActivityRowDeletePersistenceError extends Schema.TaggedErrorCl } } -export class AgentActivityRowPruneTerminalPersistenceError extends Schema.TaggedErrorClass()( +export class AgentActivityRowPruneTerminalPersistenceError extends Schema.TaggedError()( "AgentActivityRowPruneTerminalPersistenceError", { updatedBefore: Schema.String, @@ -50,7 +50,7 @@ export class AgentActivityRowPruneTerminalPersistenceError extends Schema.Tagged } } -export class AgentActivityRowListPersistenceError extends Schema.TaggedErrorClass()( +export class AgentActivityRowListPersistenceError extends Schema.TaggedError()( "AgentActivityRowListPersistenceError", { userId: Schema.String, diff --git a/infra/relay/src/agentActivity/ApnsClient.ts b/infra/relay/src/agentActivity/ApnsClient.ts index c401eb6c2e4e..9dd1b478fba9 100644 --- a/infra/relay/src/agentActivity/ApnsClient.ts +++ b/infra/relay/src/agentActivity/ApnsClient.ts @@ -51,7 +51,7 @@ export interface ApnsDeliveryResult { readonly apnsId: string | null; } -export class ApnsHttpRequestError extends Schema.TaggedErrorClass()( +export class ApnsHttpRequestError extends Schema.TaggedError()( "ApnsHttpRequestError", { requestKind: ApnsRequestKindSchema, diff --git a/infra/relay/src/agentActivity/ApnsDeliveries.ts b/infra/relay/src/agentActivity/ApnsDeliveries.ts index 9db9be3f1681..c9d97002e28c 100644 --- a/infra/relay/src/agentActivity/ApnsDeliveries.ts +++ b/infra/relay/src/agentActivity/ApnsDeliveries.ts @@ -88,7 +88,7 @@ export type ApnsDeliveryError = | LiveActivities.LiveActivityTargetListPersistenceError | LiveActivities.LiveActivityDeliveryMarkPersistenceError; -export class ApnsDeliveryJobClaimInFlight extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobClaimInFlight extends Schema.TaggedError()( "ApnsDeliveryJobClaimInFlight", { sourceJobId: Schema.String, @@ -99,7 +99,7 @@ export class ApnsDeliveryJobClaimInFlight extends Schema.TaggedErrorClass()( +export class ApnsDeliveryTransportError extends Schema.TaggedError()( "ApnsDeliveryTransportError", { deviceId: Schema.String, diff --git a/infra/relay/src/agentActivity/ApnsDeliveryQueue.ts b/infra/relay/src/agentActivity/ApnsDeliveryQueue.ts index 2a1d6abba3ea..3ca6873dddab 100644 --- a/infra/relay/src/agentActivity/ApnsDeliveryQueue.ts +++ b/infra/relay/src/agentActivity/ApnsDeliveryQueue.ts @@ -25,7 +25,7 @@ import { } from "./apnsDeliveryJobs.ts"; import * as RelayConfiguration from "../Config.ts"; -export class ApnsDeliveryQueueSendError extends Schema.TaggedErrorClass()( +export class ApnsDeliveryQueueSendError extends Schema.TaggedError()( "ApnsDeliveryQueueSendError", { operation: Schema.Literals(["generate-job-id", "send"]), diff --git a/infra/relay/src/agentActivity/DeliveryAttempts.ts b/infra/relay/src/agentActivity/DeliveryAttempts.ts index 843415abfe87..bcd9b37420fb 100644 --- a/infra/relay/src/agentActivity/DeliveryAttempts.ts +++ b/infra/relay/src/agentActivity/DeliveryAttempts.ts @@ -10,7 +10,7 @@ import * as Schema from "effect/Schema"; import * as RelayDb from "../db.ts"; import { relayDeliveryAttempts } from "../persistence/schema.ts"; -export class DeliveryAttemptRecordPersistenceError extends Schema.TaggedErrorClass()( +export class DeliveryAttemptRecordPersistenceError extends Schema.TaggedError()( "DeliveryAttemptRecordPersistenceError", { operation: Schema.Literals(["record", "claim-source-job", "complete-source-job"]), diff --git a/infra/relay/src/agentActivity/Devices.ts b/infra/relay/src/agentActivity/Devices.ts index 42087128c331..3723bf4778b9 100644 --- a/infra/relay/src/agentActivity/Devices.ts +++ b/infra/relay/src/agentActivity/Devices.ts @@ -13,7 +13,7 @@ import { sql } from "drizzle-orm"; import * as RelayDb from "../db.ts"; import { relayLiveActivities, relayMobileDevices } from "../persistence/schema.ts"; -export class DeviceRegistrationPersistenceError extends Schema.TaggedErrorClass()( +export class DeviceRegistrationPersistenceError extends Schema.TaggedError()( "DeviceRegistrationPersistenceError", { userId: Schema.String, @@ -27,7 +27,7 @@ export class DeviceRegistrationPersistenceError extends Schema.TaggedErrorClass< } } -export class DeviceUnregistrationPersistenceError extends Schema.TaggedErrorClass()( +export class DeviceUnregistrationPersistenceError extends Schema.TaggedError()( "DeviceUnregistrationPersistenceError", { userId: Schema.String, @@ -41,7 +41,7 @@ export class DeviceUnregistrationPersistenceError extends Schema.TaggedErrorClas } } -export class DeviceListPersistenceError extends Schema.TaggedErrorClass()( +export class DeviceListPersistenceError extends Schema.TaggedError()( "DeviceListPersistenceError", { userId: Schema.String, diff --git a/infra/relay/src/agentActivity/LiveActivities.ts b/infra/relay/src/agentActivity/LiveActivities.ts index a2179e1e7693..94c583c6d65d 100644 --- a/infra/relay/src/agentActivity/LiveActivities.ts +++ b/infra/relay/src/agentActivity/LiveActivities.ts @@ -18,7 +18,7 @@ import { and, eq, sql } from "drizzle-orm"; import * as RelayDb from "../db.ts"; import { relayLiveActivities, relayMobileDevices } from "../persistence/schema.ts"; -export class LiveActivityRegistrationPersistenceError extends Schema.TaggedErrorClass()( +export class LiveActivityRegistrationPersistenceError extends Schema.TaggedError()( "LiveActivityRegistrationPersistenceError", { userId: Schema.String, @@ -31,7 +31,7 @@ export class LiveActivityRegistrationPersistenceError extends Schema.TaggedError } } -export class LiveActivityTargetListPersistenceError extends Schema.TaggedErrorClass()( +export class LiveActivityTargetListPersistenceError extends Schema.TaggedError()( "LiveActivityTargetListPersistenceError", { userId: Schema.String, @@ -43,7 +43,7 @@ export class LiveActivityTargetListPersistenceError extends Schema.TaggedErrorCl } } -export class LiveActivityDeliveryMarkPersistenceError extends Schema.TaggedErrorClass()( +export class LiveActivityDeliveryMarkPersistenceError extends Schema.TaggedError()( "LiveActivityDeliveryMarkPersistenceError", { operation: Schema.Literals([ diff --git a/infra/relay/src/agentActivity/apnsDeliveryJobs.ts b/infra/relay/src/agentActivity/apnsDeliveryJobs.ts index 256ca3edb5ca..96c60072a961 100644 --- a/infra/relay/src/agentActivity/apnsDeliveryJobs.ts +++ b/infra/relay/src/agentActivity/apnsDeliveryJobs.ts @@ -88,7 +88,7 @@ export const SignedApnsDeliveryJob = Schema.Struct({ }); export type SignedApnsDeliveryJob = typeof SignedApnsDeliveryJob.Type; -export class ApnsDeliveryJobQueuePayloadInvalid extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobQueuePayloadInvalid extends Schema.TaggedError()( "ApnsDeliveryJobQueuePayloadInvalid", { receivedType: Schema.String, @@ -100,7 +100,7 @@ export class ApnsDeliveryJobQueuePayloadInvalid extends Schema.TaggedErrorClass< } } -export class ApnsDeliveryJobLiveActivityAggregateMissing extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobLiveActivityAggregateMissing extends Schema.TaggedError()( "ApnsDeliveryJobLiveActivityAggregateMissing", { ...ApnsDeliveryJobContext, @@ -112,7 +112,7 @@ export class ApnsDeliveryJobLiveActivityAggregateMissing extends Schema.TaggedEr } } -export class ApnsDeliveryJobLiveActivityNotificationUnexpected extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobLiveActivityNotificationUnexpected extends Schema.TaggedError()( "ApnsDeliveryJobLiveActivityNotificationUnexpected", { ...ApnsDeliveryJobContext, @@ -124,7 +124,7 @@ export class ApnsDeliveryJobLiveActivityNotificationUnexpected extends Schema.Ta } } -export class ApnsDeliveryJobPushNotificationMissing extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobPushNotificationMissing extends Schema.TaggedError()( "ApnsDeliveryJobPushNotificationMissing", ApnsDeliveryJobContext, ) { @@ -133,7 +133,7 @@ export class ApnsDeliveryJobPushNotificationMissing extends Schema.TaggedErrorCl } } -export class ApnsDeliveryJobPushNotificationAggregateUnexpected extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobPushNotificationAggregateUnexpected extends Schema.TaggedError()( "ApnsDeliveryJobPushNotificationAggregateUnexpected", ApnsDeliveryJobContext, ) { @@ -142,7 +142,7 @@ export class ApnsDeliveryJobPushNotificationAggregateUnexpected extends Schema.T } } -export class ApnsDeliveryJobCreatedAtInvalid extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobCreatedAtInvalid extends Schema.TaggedError()( "ApnsDeliveryJobCreatedAtInvalid", { ...ApnsDeliveryJobContext, @@ -155,7 +155,7 @@ export class ApnsDeliveryJobCreatedAtInvalid extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobExpiresAtInvalid extends Schema.TaggedError()( "ApnsDeliveryJobExpiresAtInvalid", { ...ApnsDeliveryJobContext, @@ -168,7 +168,7 @@ export class ApnsDeliveryJobExpiresAtInvalid extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobTimeWindowInvalid extends Schema.TaggedError()( "ApnsDeliveryJobTimeWindowInvalid", { ...ApnsDeliveryJobContext, @@ -182,7 +182,7 @@ export class ApnsDeliveryJobTimeWindowInvalid extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobTimeWindowTooLong extends Schema.TaggedError()( "ApnsDeliveryJobTimeWindowTooLong", { ...ApnsDeliveryJobContext, @@ -196,7 +196,7 @@ export class ApnsDeliveryJobTimeWindowTooLong extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobSignatureInvalid extends Schema.TaggedError()( "ApnsDeliveryJobSignatureInvalid", { ...ApnsDeliveryJobContext, @@ -222,7 +222,7 @@ export const ApnsDeliveryJobInvalid = Schema.Union([ ]); export type ApnsDeliveryJobInvalid = typeof ApnsDeliveryJobInvalid.Type; -export class ApnsDeliveryJobExpired extends Schema.TaggedErrorClass()( +export class ApnsDeliveryJobExpired extends Schema.TaggedError()( "ApnsDeliveryJobExpired", { ...ApnsDeliveryJobContext, diff --git a/infra/relay/src/agentActivity/apnsJwt.ts b/infra/relay/src/agentActivity/apnsJwt.ts index 74c3d15ce7dc..9019e9c2c7f4 100644 --- a/infra/relay/src/agentActivity/apnsJwt.ts +++ b/infra/relay/src/agentActivity/apnsJwt.ts @@ -10,7 +10,7 @@ import * as Schema from "effect/Schema"; import type { ApnsCredentials } from "../Config.ts"; -export class ApnsJwtEncodingError extends Schema.TaggedErrorClass()( +export class ApnsJwtEncodingError extends Schema.TaggedError()( "ApnsJwtEncodingError", { component: Schema.Literals(["header", "payload"]), @@ -25,7 +25,7 @@ export class ApnsJwtEncodingError extends Schema.TaggedErrorClass()( +export class ApnsJwtSigningError extends Schema.TaggedError()( "ApnsJwtSigningError", { teamId: Schema.String, diff --git a/infra/relay/src/auth/DpopProofs.ts b/infra/relay/src/auth/DpopProofs.ts index fa784eb639b6..8d153f1150e5 100644 --- a/infra/relay/src/auth/DpopProofs.ts +++ b/infra/relay/src/auth/DpopProofs.ts @@ -10,7 +10,7 @@ import { verifyDpopProof } from "@t3tools/shared/dpop"; import * as RelayDb from "../db.ts"; import { relayDpopProofs } from "../persistence/schema.ts"; -export class DpopProofReplayPersistenceError extends Schema.TaggedErrorClass()( +export class DpopProofReplayPersistenceError extends Schema.TaggedError()( "DpopProofReplayPersistenceError", { operation: Schema.Literals(["consume", "prune-expired"]), diff --git a/infra/relay/src/deploymentConfig.ts b/infra/relay/src/deploymentConfig.ts index fe9d37b29988..92342405beff 100644 --- a/infra/relay/src/deploymentConfig.ts +++ b/infra/relay/src/deploymentConfig.ts @@ -6,7 +6,7 @@ const MANAGED_ENDPOINT_HASH_LENGTH = 16; const MANAGED_ENDPOINT_TUNNEL_PREFIX = "t3coderelay-managedendpoint"; export const MANAGED_ENDPOINT_ZONE_OWNER_STAGE = "prod"; -export class RelayPublicDomainLabelTooLongError extends Schema.TaggedErrorClass()( +export class RelayPublicDomainLabelTooLongError extends Schema.TaggedError()( "RelayPublicDomainLabelTooLongError", { stage: Schema.String, diff --git a/infra/relay/src/environments/EnvironmentConnector.ts b/infra/relay/src/environments/EnvironmentConnector.ts index d840f809e5af..9201f814661e 100644 --- a/infra/relay/src/environments/EnvironmentConnector.ts +++ b/infra/relay/src/environments/EnvironmentConnector.ts @@ -68,7 +68,7 @@ function environmentConnectNotAuthorizedReasonMessage( } } -export class EnvironmentConnectNotAuthorized extends Schema.TaggedErrorClass()( +export class EnvironmentConnectNotAuthorized extends Schema.TaggedError()( "EnvironmentConnectNotAuthorized", { environmentId: Schema.String, @@ -81,7 +81,7 @@ export class EnvironmentConnectNotAuthorized extends Schema.TaggedErrorClass()( +export class EnvironmentMintRequestFailed extends Schema.TaggedError()( "EnvironmentMintRequestFailed", { environmentId: Schema.String, @@ -94,7 +94,7 @@ export class EnvironmentMintRequestFailed extends Schema.TaggedErrorClass()( +export class EnvironmentMintRequestTimedOut extends Schema.TaggedError()( "EnvironmentMintRequestTimedOut", { environmentId: Schema.String, @@ -106,7 +106,7 @@ export class EnvironmentMintRequestTimedOut extends Schema.TaggedErrorClass()( +export class EnvironmentMintResponseInvalid extends Schema.TaggedError()( "EnvironmentMintResponseInvalid", { environmentId: Schema.String, diff --git a/infra/relay/src/environments/EnvironmentCredentials.ts b/infra/relay/src/environments/EnvironmentCredentials.ts index 373f894ee16f..ca254ec01d26 100644 --- a/infra/relay/src/environments/EnvironmentCredentials.ts +++ b/infra/relay/src/environments/EnvironmentCredentials.ts @@ -12,7 +12,7 @@ import { QueryBuilder } from "drizzle-orm/pg-core"; import * as RelayDb from "../db.ts"; import { relayEnvironmentCredentials, relayEnvironmentLinks } from "../persistence/schema.ts"; -export class EnvironmentCredentialCreatePersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentCredentialCreatePersistenceError extends Schema.TaggedError()( "EnvironmentCredentialCreatePersistenceError", { stage: Schema.Literals([ @@ -31,7 +31,7 @@ export class EnvironmentCredentialCreatePersistenceError extends Schema.TaggedEr } } -export class EnvironmentCredentialAuthenticatePersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentCredentialAuthenticatePersistenceError extends Schema.TaggedError()( "EnvironmentCredentialAuthenticatePersistenceError", { stage: Schema.Literals(["hash-token", "lookup-credential"]), @@ -43,7 +43,7 @@ export class EnvironmentCredentialAuthenticatePersistenceError extends Schema.Ta } } -export class EnvironmentCredentialRevokePersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentCredentialRevokePersistenceError extends Schema.TaggedError()( "EnvironmentCredentialRevokePersistenceError", { environmentId: Schema.String, diff --git a/infra/relay/src/environments/EnvironmentLinker.ts b/infra/relay/src/environments/EnvironmentLinker.ts index fbfdc6428a45..00ad10c7de31 100644 --- a/infra/relay/src/environments/EnvironmentLinker.ts +++ b/infra/relay/src/environments/EnvironmentLinker.ts @@ -22,7 +22,7 @@ import * as EnvironmentLinks from "./EnvironmentLinks.ts"; import * as ManagedEndpointProvider from "./ManagedEndpointProvider.ts"; import * as RelayConfiguration from "../Config.ts"; -export class EnvironmentLinkProofExpired extends Schema.TaggedErrorClass()( +export class EnvironmentLinkProofExpired extends Schema.TaggedError()( "EnvironmentLinkProofExpired", { userId: Schema.String, @@ -35,7 +35,7 @@ export class EnvironmentLinkProofExpired extends Schema.TaggedErrorClass()( +export class EnvironmentLinkProofInvalid extends Schema.TaggedError()( "EnvironmentLinkProofInvalid", { userId: Schema.String, diff --git a/infra/relay/src/environments/EnvironmentLinks.ts b/infra/relay/src/environments/EnvironmentLinks.ts index 6630af0a11bf..58347245d64d 100644 --- a/infra/relay/src/environments/EnvironmentLinks.ts +++ b/infra/relay/src/environments/EnvironmentLinks.ts @@ -24,7 +24,7 @@ export interface AgentAwarenessDeliveryUserRecord { readonly liveActivitiesEnabled: boolean; } -export class EnvironmentLinkUpsertPersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentLinkUpsertPersistenceError extends Schema.TaggedError()( "EnvironmentLinkUpsertPersistenceError", { userId: Schema.String, @@ -38,7 +38,7 @@ export class EnvironmentLinkUpsertPersistenceError extends Schema.TaggedErrorCla } } -export class EnvironmentLinkUserListPersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentLinkUserListPersistenceError extends Schema.TaggedError()( "EnvironmentLinkUserListPersistenceError", { operation: Schema.Literals(["list-users", "list-delivery-users"]), @@ -51,7 +51,7 @@ export class EnvironmentLinkUserListPersistenceError extends Schema.TaggedErrorC } } -export class EnvironmentPublicKeyListPersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentPublicKeyListPersistenceError extends Schema.TaggedError()( "EnvironmentPublicKeyListPersistenceError", { environmentId: Schema.String, @@ -63,7 +63,7 @@ export class EnvironmentPublicKeyListPersistenceError extends Schema.TaggedError } } -export class EnvironmentLinkListPersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentLinkListPersistenceError extends Schema.TaggedError()( "EnvironmentLinkListPersistenceError", { userId: Schema.String, @@ -75,7 +75,7 @@ export class EnvironmentLinkListPersistenceError extends Schema.TaggedErrorClass } } -export class EnvironmentLinkLookupPersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentLinkLookupPersistenceError extends Schema.TaggedError()( "EnvironmentLinkLookupPersistenceError", { userId: Schema.String, @@ -88,7 +88,7 @@ export class EnvironmentLinkLookupPersistenceError extends Schema.TaggedErrorCla } } -export class EnvironmentLinkRevokePersistenceError extends Schema.TaggedErrorClass()( +export class EnvironmentLinkRevokePersistenceError extends Schema.TaggedError()( "EnvironmentLinkRevokePersistenceError", { userId: Schema.String, diff --git a/infra/relay/src/environments/EnvironmentPublishSignatures.ts b/infra/relay/src/environments/EnvironmentPublishSignatures.ts index eb9c15a75aa3..962d55b050bc 100644 --- a/infra/relay/src/environments/EnvironmentPublishSignatures.ts +++ b/infra/relay/src/environments/EnvironmentPublishSignatures.ts @@ -21,7 +21,7 @@ import * as Schema from "effect/Schema"; import * as DpopProofs from "../auth/DpopProofs.ts"; import * as RelayConfiguration from "../Config.ts"; -export class EnvironmentPublishSignatureExpired extends Schema.TaggedErrorClass()( +export class EnvironmentPublishSignatureExpired extends Schema.TaggedError()( "EnvironmentPublishSignatureExpired", { environmentId: Schema.String, @@ -34,7 +34,7 @@ export class EnvironmentPublishSignatureExpired extends Schema.TaggedErrorClass< } } -export class EnvironmentPublishSignatureInvalid extends Schema.TaggedErrorClass()( +export class EnvironmentPublishSignatureInvalid extends Schema.TaggedError()( "EnvironmentPublishSignatureInvalid", { environmentId: Schema.String, @@ -56,7 +56,7 @@ export class EnvironmentPublishSignatureInvalid extends Schema.TaggedErrorClass< } } -export class EnvironmentPublishPublicKeyMissing extends Schema.TaggedErrorClass()( +export class EnvironmentPublishPublicKeyMissing extends Schema.TaggedError()( "EnvironmentPublishPublicKeyMissing", { environmentId: Schema.String, diff --git a/infra/relay/src/environments/ManagedEndpointAllocations.ts b/infra/relay/src/environments/ManagedEndpointAllocations.ts index 4320eeea3b72..a8b5ecde62c0 100644 --- a/infra/relay/src/environments/ManagedEndpointAllocations.ts +++ b/infra/relay/src/environments/ManagedEndpointAllocations.ts @@ -41,7 +41,7 @@ export function resolveReadyManagedEndpoint(input: { return managedEndpointForHostname(input.allocation.hostname); } -export class ManagedEndpointAllocationPersistenceError extends Schema.TaggedErrorClass()( +export class ManagedEndpointAllocationPersistenceError extends Schema.TaggedError()( "ManagedEndpointAllocationPersistenceError", { operation: Schema.Literals([ diff --git a/infra/relay/src/environments/ManagedEndpointProvider.ts b/infra/relay/src/environments/ManagedEndpointProvider.ts index 9a578874844e..977568c2745c 100644 --- a/infra/relay/src/environments/ManagedEndpointProvider.ts +++ b/infra/relay/src/environments/ManagedEndpointProvider.ts @@ -25,7 +25,7 @@ import { import * as ManagedEndpointAllocations from "./ManagedEndpointAllocations.ts"; import * as ManagedTunnelLimits from "./ManagedTunnelLimits.ts"; -export class ManagedEndpointProvisioningNotConfigured extends Schema.TaggedErrorClass()( +export class ManagedEndpointProvisioningNotConfigured extends Schema.TaggedError()( "ManagedEndpointProvisioningNotConfigured", { userId: Schema.String, @@ -54,7 +54,7 @@ const ManagedEndpointProvisioningStage = Schema.Literals([ "mark-allocation-ready", ]); -export class ManagedEndpointProvisioningFailed extends Schema.TaggedErrorClass()( +export class ManagedEndpointProvisioningFailed extends Schema.TaggedError()( "ManagedEndpointProvisioningFailed", { stage: ManagedEndpointProvisioningStage, @@ -83,7 +83,7 @@ const ManagedEndpointDeprovisioningStage = Schema.Literals([ "remove-allocation", ]); -export class ManagedEndpointDeprovisioningFailed extends Schema.TaggedErrorClass()( +export class ManagedEndpointDeprovisioningFailed extends Schema.TaggedError()( "ManagedEndpointDeprovisioningFailed", { stage: ManagedEndpointDeprovisioningStage, @@ -99,7 +99,7 @@ export class ManagedEndpointDeprovisioningFailed extends Schema.TaggedErrorClass } } -export class ManagedEndpointOriginNotAllowed extends Schema.TaggedErrorClass()( +export class ManagedEndpointOriginNotAllowed extends Schema.TaggedError()( "ManagedEndpointOriginNotAllowed", { userId: Schema.String, @@ -183,7 +183,7 @@ const ManagedEndpointTunnelClientOperation = Schema.Literals([ "delete", ]); -export class ManagedEndpointTunnelClientError extends Schema.TaggedErrorClass()( +export class ManagedEndpointTunnelClientError extends Schema.TaggedError()( "ManagedEndpointTunnelClientError", { operation: ManagedEndpointTunnelClientOperation, @@ -246,7 +246,7 @@ const ManagedEndpointDnsClientOperation = Schema.Literals([ "delete-record", ]); -export class ManagedEndpointDnsClientError extends Schema.TaggedErrorClass()( +export class ManagedEndpointDnsClientError extends Schema.TaggedError()( "ManagedEndpointDnsClientError", { operation: ManagedEndpointDnsClientOperation, diff --git a/infra/relay/src/environments/ManagedTunnelLimits.ts b/infra/relay/src/environments/ManagedTunnelLimits.ts index 9d8b9c796ed6..b149c6895c2a 100644 --- a/infra/relay/src/environments/ManagedTunnelLimits.ts +++ b/infra/relay/src/environments/ManagedTunnelLimits.ts @@ -17,7 +17,7 @@ import { */ export const DEFAULT_MANAGED_TUNNEL_LIMIT = 3; -export class ManagedTunnelLimitPersistenceError extends Schema.TaggedErrorClass()( +export class ManagedTunnelLimitPersistenceError extends Schema.TaggedError()( "ManagedTunnelLimitPersistenceError", { operation: Schema.Literals(["load-limit", "count-tunnels"]), @@ -30,7 +30,7 @@ export class ManagedTunnelLimitPersistenceError extends Schema.TaggedErrorClass< } } -export class ManagedTunnelLimitExceeded extends Schema.TaggedErrorClass()( +export class ManagedTunnelLimitExceeded extends Schema.TaggedError()( "ManagedTunnelLimitExceeded", { userId: Schema.String, diff --git a/infra/relay/src/http/Api.ts b/infra/relay/src/http/Api.ts index 50bcff665a9b..8a4d935dad1b 100644 --- a/infra/relay/src/http/Api.ts +++ b/infra/relay/src/http/Api.ts @@ -987,7 +987,7 @@ export const serverApi = HttpApiBuilder.group( }), ); -class ClerkTokenVerificationFailed extends Schema.TaggedErrorClass()( +class ClerkTokenVerificationFailed extends Schema.TaggedError()( "ClerkTokenVerificationFailed", { cause: Schema.Defect(), diff --git a/packages/client-runtime/src/connection/model.ts b/packages/client-runtime/src/connection/model.ts index fbcb302ed135..56442e994318 100644 --- a/packages/client-runtime/src/connection/model.ts +++ b/packages/client-runtime/src/connection/model.ts @@ -75,7 +75,7 @@ export const ConnectionBlockedReason = Schema.Literals([ ]); export type ConnectionBlockedReason = typeof ConnectionBlockedReason.Type; -export class ConnectionTransientError extends Schema.TaggedErrorClass()( +export class ConnectionTransientError extends Schema.TaggedError()( "ConnectionTransientError", { reason: ConnectionTransientReason, @@ -88,7 +88,7 @@ export class ConnectionTransientError extends Schema.TaggedErrorClass()( +export class ConnectionBlockedError extends Schema.TaggedError()( "ConnectionBlockedError", { reason: ConnectionBlockedReason, diff --git a/packages/client-runtime/src/connection/registry.ts b/packages/client-runtime/src/connection/registry.ts index a3a36272f326..23f2d2807d23 100644 --- a/packages/client-runtime/src/connection/registry.ts +++ b/packages/client-runtime/src/connection/registry.ts @@ -37,7 +37,7 @@ import * as ConnectionWakeups from "./wakeups.ts"; const isSshConnectionProfile = Schema.is(SshConnectionProfile); -export class EnvironmentNotRegisteredError extends Schema.TaggedErrorClass()( +export class EnvironmentNotRegisteredError extends Schema.TaggedError()( "EnvironmentNotRegisteredError", { environmentId: EnvironmentId, @@ -48,7 +48,7 @@ export class EnvironmentNotRegisteredError extends Schema.TaggedErrorClass()( +export class PlatformEnvironmentRemovalError extends Schema.TaggedError()( "PlatformEnvironmentRemovalError", { environmentId: EnvironmentId, diff --git a/packages/client-runtime/src/platform/persistence.ts b/packages/client-runtime/src/platform/persistence.ts index 14a322bcd303..2e59aeee24e0 100644 --- a/packages/client-runtime/src/platform/persistence.ts +++ b/packages/client-runtime/src/platform/persistence.ts @@ -14,7 +14,7 @@ import * as Schema from "effect/Schema"; import type { ConnectionRegistration } from "../connection/catalog.ts"; import type { ConnectionTarget } from "../connection/model.ts"; -export class ConnectionPersistenceError extends Schema.TaggedErrorClass()( +export class ConnectionPersistenceError extends Schema.TaggedError()( "ConnectionPersistenceError", { operation: Schema.Literals([ diff --git a/packages/client-runtime/src/relay/managedRelay.ts b/packages/client-runtime/src/relay/managedRelay.ts index 06769a4372f1..3ca48e5d69cb 100644 --- a/packages/client-runtime/src/relay/managedRelay.ts +++ b/packages/client-runtime/src/relay/managedRelay.ts @@ -51,7 +51,7 @@ export interface ManagedRelayDpopProofInput { readonly accessToken?: string; } -export class ManagedRelayDpopKeyLoadError extends Schema.TaggedErrorClass()( +export class ManagedRelayDpopKeyLoadError extends Schema.TaggedError()( "ManagedRelayDpopKeyLoadError", { keyStore: Schema.Literals(["expo-secure-store", "indexed-db"]), @@ -63,7 +63,7 @@ export class ManagedRelayDpopKeyLoadError extends Schema.TaggedErrorClass()( +export class ManagedRelayDpopProofCreationError extends Schema.TaggedError()( "ManagedRelayDpopProofCreationError", { method: Schema.String, @@ -114,7 +114,7 @@ export const ManagedRelayRequestActivity = Schema.Literals([ ]); export type ManagedRelayRequestActivity = typeof ManagedRelayRequestActivity.Type; -export class ManagedRelayRequestTimeoutError extends Schema.TaggedErrorClass()( +export class ManagedRelayRequestTimeoutError extends Schema.TaggedError()( "ManagedRelayRequestTimeoutError", { activity: ManagedRelayRequestActivity, @@ -130,7 +130,7 @@ export class ManagedRelayRequestTimeoutError extends Schema.TaggedErrorClass()( +export class ManagedRelayUrlInvalidError extends Schema.TaggedError()( "ManagedRelayUrlInvalidError", { relayUrl: Schema.String, @@ -141,7 +141,7 @@ export class ManagedRelayUrlInvalidError extends Schema.TaggedErrorClass()( +export class ManagedRelayRequestFailedError extends Schema.TaggedError()( "ManagedRelayRequestFailedError", { action: ManagedRelayRequestAction, @@ -155,7 +155,7 @@ export class ManagedRelayRequestFailedError extends Schema.TaggedErrorClass()( +export class ManagedRelayAccessTokenScopesUnexpectedError extends Schema.TaggedError()( "ManagedRelayAccessTokenScopesUnexpectedError", { requestedScopes: Schema.Array(RelayDpopAccessTokenScope), @@ -167,7 +167,7 @@ export class ManagedRelayAccessTokenScopesUnexpectedError extends Schema.TaggedE } } -export class ManagedRelayTokenProofCreationError extends Schema.TaggedErrorClass()( +export class ManagedRelayTokenProofCreationError extends Schema.TaggedError()( "ManagedRelayTokenProofCreationError", { method: Schema.String, @@ -180,7 +180,7 @@ export class ManagedRelayTokenProofCreationError extends Schema.TaggedErrorClass } } -export class ManagedRelayRequestProofCreationError extends Schema.TaggedErrorClass()( +export class ManagedRelayRequestProofCreationError extends Schema.TaggedError()( "ManagedRelayRequestProofCreationError", { method: Schema.String, diff --git a/packages/client-runtime/src/rpc/client.ts b/packages/client-runtime/src/rpc/client.ts index bfe57a6c0dd5..0a91d63fe12e 100644 --- a/packages/client-runtime/src/rpc/client.ts +++ b/packages/client-runtime/src/rpc/client.ts @@ -13,7 +13,7 @@ import { EnvironmentSupervisor } from "../connection/supervisor.ts"; import type { WsRpcProtocolClient } from "../rpc/protocol.ts"; import type { RpcSession } from "../rpc/session.ts"; -export class EnvironmentRpcUnavailableError extends Schema.TaggedErrorClass()( +export class EnvironmentRpcUnavailableError extends Schema.TaggedError()( "EnvironmentRpcUnavailableError", { environmentId: Schema.String, diff --git a/packages/client-runtime/src/state/assets.ts b/packages/client-runtime/src/state/assets.ts index e407f5d0028f..435001184fe2 100644 --- a/packages/client-runtime/src/state/assets.ts +++ b/packages/client-runtime/src/state/assets.ts @@ -9,7 +9,7 @@ const ASSET_URL_REFRESH_INTERVAL_MS = 30 * 60_000; const ASSET_URL_STALE_TIME_MS = 5 * 60_000; const ASSET_URL_IDLE_TTL_MS = 60 * 60_000; -export class InvalidAssetCollectionKeyError extends Schema.TaggedErrorClass()( +export class InvalidAssetCollectionKeyError extends Schema.TaggedError()( "InvalidAssetCollectionKeyError", { key: Schema.String, diff --git a/packages/client-runtime/src/state/entities.ts b/packages/client-runtime/src/state/entities.ts index e90f31d6da40..61b81f164216 100644 --- a/packages/client-runtime/src/state/entities.ts +++ b/packages/client-runtime/src/state/entities.ts @@ -7,7 +7,7 @@ import { } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -export class InvalidScopedProjectKeyError extends Schema.TaggedErrorClass()( +export class InvalidScopedProjectKeyError extends Schema.TaggedError()( "InvalidScopedProjectKeyError", { key: Schema.String, @@ -18,7 +18,7 @@ export class InvalidScopedProjectKeyError extends Schema.TaggedErrorClass()( +export class InvalidScopedThreadKeyError extends Schema.TaggedError()( "InvalidScopedThreadKeyError", { key: Schema.String, @@ -29,7 +29,7 @@ export class InvalidScopedThreadKeyError extends Schema.TaggedErrorClass()( +export class InvalidScopedProjectRefCollectionKeyError extends Schema.TaggedError()( "InvalidScopedProjectRefCollectionKeyError", { key: Schema.String, diff --git a/packages/client-runtime/src/state/server.ts b/packages/client-runtime/src/state/server.ts index f579453c27fc..5c83441afeff 100644 --- a/packages/client-runtime/src/state/server.ts +++ b/packages/client-runtime/src/state/server.ts @@ -75,7 +75,7 @@ const serverUpdateStateAtom = Atom.family((environmentId: EnvironmentId) => ), ); -export class ServerUpdateResumeTimeoutError extends Schema.TaggedErrorClass()( +export class ServerUpdateResumeTimeoutError extends Schema.TaggedError()( "ServerUpdateResumeTimeoutError", { environmentId: Schema.String, @@ -87,7 +87,7 @@ export class ServerUpdateResumeTimeoutError extends Schema.TaggedErrorClass()( +export class ServerUpdateProgressIncompleteError extends Schema.TaggedError()( "ServerUpdateProgressIncompleteError", { targetVersion: Schema.String, @@ -98,7 +98,7 @@ export class ServerUpdateProgressIncompleteError extends Schema.TaggedErrorClass } } -export class ServerUpdateTerminalError extends Schema.TaggedErrorClass()( +export class ServerUpdateTerminalError extends Schema.TaggedError()( "ServerUpdateTerminalError", { targetVersion: Schema.String, diff --git a/packages/client-runtime/src/state/session.test.ts b/packages/client-runtime/src/state/session.test.ts index fe1dcdbe3f2b..95480c3e28cc 100644 --- a/packages/client-runtime/src/state/session.test.ts +++ b/packages/client-runtime/src/state/session.test.ts @@ -5,7 +5,7 @@ import * as Schema from "effect/Schema"; import { initialConfigOption } from "./session.ts"; -class TestConfigError extends Schema.TaggedErrorClass()("TestConfigError", { +class TestConfigError extends Schema.TaggedError()("TestConfigError", { message: Schema.String, }) {} diff --git a/packages/client-runtime/src/state/vcsAction.ts b/packages/client-runtime/src/state/vcsAction.ts index f0c3791e35b2..1793803774a2 100644 --- a/packages/client-runtime/src/state/vcsAction.ts +++ b/packages/client-runtime/src/state/vcsAction.ts @@ -79,7 +79,7 @@ export interface RunVcsStackedActionInput { readonly onProgress?: (event: GitActionProgressEvent) => void; } -export class VcsActionUnavailableError extends Schema.TaggedErrorClass()( +export class VcsActionUnavailableError extends Schema.TaggedError()( "VcsActionUnavailableError", { operation: VcsActionOperation, @@ -92,7 +92,7 @@ export class VcsActionUnavailableError extends Schema.TaggedErrorClass()( +export class VcsActionRemoteFailureError extends Schema.TaggedError()( "VcsActionRemoteFailureError", { actionId: Schema.String, @@ -110,7 +110,7 @@ export class VcsActionRemoteFailureError extends Schema.TaggedErrorClass()( +export class VcsActionMissingTerminalEventError extends Schema.TaggedError()( "VcsActionMissingTerminalEventError", { actionId: Schema.String, @@ -125,7 +125,7 @@ export class VcsActionMissingTerminalEventError extends Schema.TaggedErrorClass< } } -export class VcsActionTargetKeyParseError extends Schema.TaggedErrorClass()( +export class VcsActionTargetKeyParseError extends Schema.TaggedError()( "VcsActionTargetKeyParseError", { keyLength: Schema.Number, diff --git a/packages/contracts/src/assets.ts b/packages/contracts/src/assets.ts index e3922073455d..f82bec3534d9 100644 --- a/packages/contracts/src/assets.ts +++ b/packages/contracts/src/assets.ts @@ -36,7 +36,7 @@ export const AssetCreateUrlResult = Schema.Struct({ }); export type AssetCreateUrlResult = typeof AssetCreateUrlResult.Type; -export class AssetWorkspaceContextNotFoundError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceContextNotFoundError extends Schema.TaggedError()( "AssetWorkspaceContextNotFoundError", { resource: AssetResource, @@ -47,7 +47,7 @@ export class AssetWorkspaceContextNotFoundError extends Schema.TaggedErrorClass< } } -export class AssetWorkspaceContextResolutionError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceContextResolutionError extends Schema.TaggedError()( "AssetWorkspaceContextResolutionError", { resource: AssetResource, @@ -59,7 +59,7 @@ export class AssetWorkspaceContextResolutionError extends Schema.TaggedErrorClas } } -export class AssetWorkspaceRootNormalizationError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceRootNormalizationError extends Schema.TaggedError()( "AssetWorkspaceRootNormalizationError", { resource: AssetResource, @@ -71,7 +71,7 @@ export class AssetWorkspaceRootNormalizationError extends Schema.TaggedErrorClas } } -export class AssetWorkspacePathValidationError extends Schema.TaggedErrorClass()( +export class AssetWorkspacePathValidationError extends Schema.TaggedError()( "AssetWorkspacePathValidationError", { resource: AssetResource, @@ -83,7 +83,7 @@ export class AssetWorkspacePathValidationError extends Schema.TaggedErrorClass()( +export class AssetPreviewTypeValidationError extends Schema.TaggedError()( "AssetPreviewTypeValidationError", { resource: AssetResource, @@ -94,7 +94,7 @@ export class AssetPreviewTypeValidationError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceAssetInspectionError extends Schema.TaggedError()( "AssetWorkspaceAssetInspectionError", { resource: AssetResource, @@ -106,7 +106,7 @@ export class AssetWorkspaceAssetInspectionError extends Schema.TaggedErrorClass< } } -export class AssetWorkspaceAssetNotFoundError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceAssetNotFoundError extends Schema.TaggedError()( "AssetWorkspaceAssetNotFoundError", { resource: AssetResource, @@ -117,7 +117,7 @@ export class AssetWorkspaceAssetNotFoundError extends Schema.TaggedErrorClass()( +export class AssetWorkspaceResolutionError extends Schema.TaggedError()( "AssetWorkspaceResolutionError", { resource: AssetResource, @@ -129,7 +129,7 @@ export class AssetWorkspaceResolutionError extends Schema.TaggedErrorClass()( +export class AssetAttachmentNotFoundError extends Schema.TaggedError()( "AssetAttachmentNotFoundError", { resource: AssetResource, @@ -140,7 +140,7 @@ export class AssetAttachmentNotFoundError extends Schema.TaggedErrorClass()( +export class AssetProjectFaviconResolutionError extends Schema.TaggedError()( "AssetProjectFaviconResolutionError", { resource: AssetResource, @@ -152,7 +152,7 @@ export class AssetProjectFaviconResolutionError extends Schema.TaggedErrorClass< } } -export class AssetProjectFaviconInspectionError extends Schema.TaggedErrorClass()( +export class AssetProjectFaviconInspectionError extends Schema.TaggedError()( "AssetProjectFaviconInspectionError", { resource: AssetResource, @@ -164,7 +164,7 @@ export class AssetProjectFaviconInspectionError extends Schema.TaggedErrorClass< } } -export class AssetProjectFaviconNotFoundError extends Schema.TaggedErrorClass()( +export class AssetProjectFaviconNotFoundError extends Schema.TaggedError()( "AssetProjectFaviconNotFoundError", { resource: AssetResource, @@ -175,7 +175,7 @@ export class AssetProjectFaviconNotFoundError extends Schema.TaggedErrorClass()( +export class AssetSigningKeyLoadError extends Schema.TaggedError()( "AssetSigningKeyLoadError", { resource: AssetResource, diff --git a/packages/contracts/src/auth.ts b/packages/contracts/src/auth.ts index 0af93dc0344a..ee84604e3117 100644 --- a/packages/contracts/src/auth.ts +++ b/packages/contracts/src/auth.ts @@ -278,14 +278,14 @@ export const AuthAccessStreamPairingLinkRemovedEvent = Schema.Struct({ export type AuthAccessStreamPairingLinkRemovedEvent = typeof AuthAccessStreamPairingLinkRemovedEvent.Type; -export class AuthAccessStreamError extends Schema.TaggedErrorClass()( +export class AuthAccessStreamError extends Schema.TaggedError()( "AuthAccessStreamError", { message: Schema.String, }, ) {} -export class EnvironmentAuthorizationError extends Schema.TaggedErrorClass()( +export class EnvironmentAuthorizationError extends Schema.TaggedError()( "EnvironmentAuthorizationError", { message: Schema.String, diff --git a/packages/contracts/src/editor.ts b/packages/contracts/src/editor.ts index d714a0e02664..e748138db170 100644 --- a/packages/contracts/src/editor.ts +++ b/packages/contracts/src/editor.ts @@ -123,7 +123,7 @@ export const RemoteOpenTarget = Schema.Struct({ }); export type RemoteOpenTarget = typeof RemoteOpenTarget.Type; -export class ExternalLauncherUnknownEditorError extends Schema.TaggedErrorClass()( +export class ExternalLauncherUnknownEditorError extends Schema.TaggedError()( "ExternalLauncherUnknownEditorError", { editor: Schema.String, @@ -134,7 +134,7 @@ export class ExternalLauncherUnknownEditorError extends Schema.TaggedErrorClass< } } -export class ExternalLauncherUnsupportedEditorError extends Schema.TaggedErrorClass()( +export class ExternalLauncherUnsupportedEditorError extends Schema.TaggedError()( "ExternalLauncherUnsupportedEditorError", { editor: EditorId, @@ -145,7 +145,7 @@ export class ExternalLauncherUnsupportedEditorError extends Schema.TaggedErrorCl } } -export class ExternalLauncherCommandNotFoundError extends Schema.TaggedErrorClass()( +export class ExternalLauncherCommandNotFoundError extends Schema.TaggedError()( "ExternalLauncherCommandNotFoundError", { editor: EditorId, @@ -163,7 +163,7 @@ const ExternalLauncherSpawnFields = { cause: Schema.Defect(), }; -export class ExternalLauncherBrowserSpawnError extends Schema.TaggedErrorClass()( +export class ExternalLauncherBrowserSpawnError extends Schema.TaggedError()( "ExternalLauncherBrowserSpawnError", { ...ExternalLauncherSpawnFields, @@ -175,7 +175,7 @@ export class ExternalLauncherBrowserSpawnError extends Schema.TaggedErrorClass()( +export class ExternalLauncherEditorSpawnError extends Schema.TaggedError()( "ExternalLauncherEditorSpawnError", { ...ExternalLauncherSpawnFields, diff --git a/packages/contracts/src/environmentHttp.ts b/packages/contracts/src/environmentHttp.ts index e7494862251e..ae9daec0ed1d 100644 --- a/packages/contracts/src/environmentHttp.ts +++ b/packages/contracts/src/environmentHttp.ts @@ -94,7 +94,7 @@ export const EnvironmentInternalErrorReason = Schema.Literals([ ]); export type EnvironmentInternalErrorReason = typeof EnvironmentInternalErrorReason.Type; -export class EnvironmentRequestInvalidError extends Schema.TaggedErrorClass()( +export class EnvironmentRequestInvalidError extends Schema.TaggedError()( "EnvironmentRequestInvalidError", { code: Schema.Literal("invalid_request"), @@ -112,7 +112,7 @@ export class EnvironmentRequestInvalidError extends Schema.TaggedErrorClass()( +export class EnvironmentAuthInvalidError extends Schema.TaggedError()( "EnvironmentAuthInvalidError", { code: Schema.Literal("auth_invalid"), @@ -130,7 +130,7 @@ export class EnvironmentAuthInvalidError extends Schema.TaggedErrorClass()( +export class EnvironmentScopeRequiredError extends Schema.TaggedError()( "EnvironmentScopeRequiredError", { code: Schema.Literal("insufficient_scope"), @@ -148,7 +148,7 @@ export class EnvironmentScopeRequiredError extends Schema.TaggedErrorClass()( +export class EnvironmentOperationForbiddenError extends Schema.TaggedError()( "EnvironmentOperationForbiddenError", { code: Schema.Literal("operation_forbidden"), @@ -166,7 +166,7 @@ export class EnvironmentOperationForbiddenError extends Schema.TaggedErrorClass< } } -export class EnvironmentInternalError extends Schema.TaggedErrorClass()( +export class EnvironmentInternalError extends Schema.TaggedError()( "EnvironmentInternalError", { code: Schema.Literal("internal_error"), @@ -187,7 +187,7 @@ export class EnvironmentInternalError extends Schema.TaggedErrorClass()( +export class EnvironmentResourceNotFoundError extends Schema.TaggedError()( "EnvironmentResourceNotFoundError", { code: Schema.Literal("not_found"), @@ -220,7 +220,7 @@ const EnvironmentAuthenticationErrors = [ EnvironmentInternalError, ] as const; -export class EnvironmentHttpBadRequestError extends Schema.TaggedErrorClass()( +export class EnvironmentHttpBadRequestError extends Schema.TaggedError()( "EnvironmentHttpBadRequestError", { message: Schema.String, @@ -232,7 +232,7 @@ export class EnvironmentHttpBadRequestError extends Schema.TaggedErrorClass()( +export class EnvironmentHttpUnauthorizedError extends Schema.TaggedError()( "EnvironmentHttpUnauthorizedError", { message: Schema.String, @@ -244,7 +244,7 @@ export class EnvironmentHttpUnauthorizedError extends Schema.TaggedErrorClass()( +export class EnvironmentHttpForbiddenError extends Schema.TaggedError()( "EnvironmentHttpForbiddenError", { message: Schema.String, @@ -256,7 +256,7 @@ export class EnvironmentHttpForbiddenError extends Schema.TaggedErrorClass()( +export class EnvironmentHttpInternalServerError extends Schema.TaggedError()( "EnvironmentHttpInternalServerError", { message: Schema.String, @@ -268,7 +268,7 @@ export class EnvironmentHttpInternalServerError extends Schema.TaggedErrorClass< } } -export class EnvironmentHttpConflictError extends Schema.TaggedErrorClass()( +export class EnvironmentHttpConflictError extends Schema.TaggedError()( "EnvironmentHttpConflictError", { message: Schema.String, @@ -280,7 +280,7 @@ export class EnvironmentHttpConflictError extends Schema.TaggedErrorClass()( +export class EnvironmentCloudEndpointUnavailableError extends Schema.TaggedError()( "EnvironmentCloudEndpointUnavailableError", { message: Schema.String, diff --git a/packages/contracts/src/filesystem.ts b/packages/contracts/src/filesystem.ts index ca4519b4c8b1..73815fd2c466 100644 --- a/packages/contracts/src/filesystem.ts +++ b/packages/contracts/src/filesystem.ts @@ -33,7 +33,7 @@ function decodedFilesystemBrowseErrorMessage(props: object): string | undefined return typeof props.message === "string" ? props.message : undefined; } -export class FilesystemBrowseError extends Schema.TaggedErrorClass()( +export class FilesystemBrowseError extends Schema.TaggedError()( "FilesystemBrowseError", { partialPath: Schema.optional(TrimmedNonEmptyString), diff --git a/packages/contracts/src/git.ts b/packages/contracts/src/git.ts index 915c3627c9b9..9ad5ba538b3a 100644 --- a/packages/contracts/src/git.ts +++ b/packages/contracts/src/git.ts @@ -335,7 +335,7 @@ export const VcsPullResult = Schema.Struct({ export type VcsPullResult = typeof VcsPullResult.Type; // RPC / domain errors -export class GitCommandError extends Schema.TaggedErrorClass()("GitCommandError", { +export class GitCommandError extends Schema.TaggedError()("GitCommandError", { operation: Schema.String, command: Schema.String, cwd: Schema.String, @@ -352,7 +352,7 @@ export class GitCommandError extends Schema.TaggedErrorClass()( } } -export class TextGenerationError extends Schema.TaggedErrorClass()( +export class TextGenerationError extends Schema.TaggedError()( "TextGenerationError", { operation: Schema.String, @@ -365,7 +365,7 @@ export class TextGenerationError extends Schema.TaggedErrorClass()("GitManagerError", { +export class GitManagerError extends Schema.TaggedError()("GitManagerError", { operation: Schema.String, cwd: Schema.String, detail: Schema.String, @@ -376,7 +376,7 @@ export class GitManagerError extends Schema.TaggedErrorClass()( } } -export class GitPullRequestMaterializationError extends Schema.TaggedErrorClass()( +export class GitPullRequestMaterializationError extends Schema.TaggedError()( "GitPullRequestMaterializationError", { cwd: TrimmedNonEmptyStringSchema, diff --git a/packages/contracts/src/keybindings.ts b/packages/contracts/src/keybindings.ts index 19276c41e7b6..5b81c0644af2 100644 --- a/packages/contracts/src/keybindings.ts +++ b/packages/contracts/src/keybindings.ts @@ -169,7 +169,7 @@ export const ResolvedKeybindingsConfig = ForwardCompatibleArray(ResolvedKeybindi ); export type ResolvedKeybindingsConfig = typeof ResolvedKeybindingsConfig.Type; -export class KeybindingsConfigError extends Schema.TaggedErrorClass()( +export class KeybindingsConfigError extends Schema.TaggedError()( "KeybindingsConfigParseError", { configPath: Schema.String, diff --git a/packages/contracts/src/orchestration.ts b/packages/contracts/src/orchestration.ts index adb17879ff2f..928c47fca255 100644 --- a/packages/contracts/src/orchestration.ts +++ b/packages/contracts/src/orchestration.ts @@ -1655,7 +1655,7 @@ const WORKFLOW_SCRIPT_ERROR_MESSAGES = { "read-failed": "Script read failed.", } as const; -export class OrchestrationGetWorkflowScriptError extends Schema.TaggedErrorClass()( +export class OrchestrationGetWorkflowScriptError extends Schema.TaggedError()( "OrchestrationGetWorkflowScriptError", { reason: Schema.Literals([ @@ -1712,7 +1712,7 @@ export const OrchestrationRpcSchemas = { }, } as const; -export class OrchestrationGetSnapshotError extends Schema.TaggedErrorClass()( +export class OrchestrationGetSnapshotError extends Schema.TaggedError()( "OrchestrationGetSnapshotError", { message: TrimmedNonEmptyString, @@ -1720,7 +1720,7 @@ export class OrchestrationGetSnapshotError extends Schema.TaggedErrorClass()( +export class OrchestrationDispatchCommandError extends Schema.TaggedError()( "OrchestrationDispatchCommandError", { message: TrimmedNonEmptyString, @@ -1729,7 +1729,7 @@ export class OrchestrationDispatchCommandError extends Schema.TaggedErrorClass()( +export class OrchestrationGetTurnDiffError extends Schema.TaggedError()( "OrchestrationGetTurnDiffError", { message: TrimmedNonEmptyString, @@ -1737,7 +1737,7 @@ export class OrchestrationGetTurnDiffError extends Schema.TaggedErrorClass()( +export class OrchestrationGetFullThreadDiffError extends Schema.TaggedError()( "OrchestrationGetFullThreadDiffError", { message: TrimmedNonEmptyString, @@ -1745,7 +1745,7 @@ export class OrchestrationGetFullThreadDiffError extends Schema.TaggedErrorClass }, ) {} -export class OrchestrationSearchThreadsError extends Schema.TaggedErrorClass()( +export class OrchestrationSearchThreadsError extends Schema.TaggedError()( "OrchestrationSearchThreadsError", { message: TrimmedNonEmptyString, diff --git a/packages/contracts/src/preview.ts b/packages/contracts/src/preview.ts index a1b743afc673..9dd75161ab5b 100644 --- a/packages/contracts/src/preview.ts +++ b/packages/contracts/src/preview.ts @@ -314,7 +314,7 @@ export const DiscoveredLocalServerList = Schema.Struct({ }); export type DiscoveredLocalServerList = typeof DiscoveredLocalServerList.Type; -export class PreviewSessionLookupError extends Schema.TaggedErrorClass()( +export class PreviewSessionLookupError extends Schema.TaggedError()( "PreviewSessionLookupError", { threadId: Schema.String, @@ -326,7 +326,7 @@ export class PreviewSessionLookupError extends Schema.TaggedErrorClass()( +export class PreviewInvalidUrlError extends Schema.TaggedError()( "PreviewInvalidUrlError", { inputLength: Schema.Number, diff --git a/packages/contracts/src/previewAutomation.ts b/packages/contracts/src/previewAutomation.ts index e33615fa4c05..b37b4162ded0 100644 --- a/packages/contracts/src/previewAutomation.ts +++ b/packages/contracts/src/previewAutomation.ts @@ -631,7 +631,7 @@ export const PreviewAutomationResponse = Schema.Struct({ }); export type PreviewAutomationResponse = typeof PreviewAutomationResponse.Type; -export class PreviewAutomationUnavailableError extends Schema.TaggedErrorClass()( +export class PreviewAutomationUnavailableError extends Schema.TaggedError()( "PreviewAutomationUnavailableError", { capability: Schema.Literal("preview"), @@ -681,7 +681,7 @@ const PreviewAutomationOptionalRemoteDiagnosticFields = { cause: Schema.optional(Schema.Defect()), }; -export class PreviewAutomationNoAvailableHostError extends Schema.TaggedErrorClass()( +export class PreviewAutomationNoAvailableHostError extends Schema.TaggedError()( "PreviewAutomationNoAvailableHostError", { ...PreviewAutomationScopeErrorFields, @@ -699,7 +699,7 @@ export class PreviewAutomationNoAvailableHostError extends Schema.TaggedErrorCla } } -export class PreviewAutomationUnsupportedClientError extends Schema.TaggedErrorClass()( +export class PreviewAutomationUnsupportedClientError extends Schema.TaggedError()( "PreviewAutomationUnsupportedClientError", { ...PreviewAutomationRequestErrorFields, @@ -711,7 +711,7 @@ export class PreviewAutomationUnsupportedClientError extends Schema.TaggedErrorC } } -export class PreviewAutomationTabNotFoundError extends Schema.TaggedErrorClass()( +export class PreviewAutomationTabNotFoundError extends Schema.TaggedError()( "PreviewAutomationTabNotFoundError", { ...PreviewAutomationRequestErrorFields, @@ -726,7 +726,7 @@ export class PreviewAutomationTabNotFoundError extends Schema.TaggedErrorClass

()( +export class PreviewAutomationTimeoutError extends Schema.TaggedError()( "PreviewAutomationTimeoutError", { ...PreviewAutomationRequestErrorFields, @@ -739,7 +739,7 @@ export class PreviewAutomationTimeoutError extends Schema.TaggedErrorClass()( +export class PreviewAutomationControlInterruptedError extends Schema.TaggedError()( "PreviewAutomationControlInterruptedError", { ...PreviewAutomationRequestErrorFields, @@ -751,7 +751,7 @@ export class PreviewAutomationControlInterruptedError extends Schema.TaggedError } } -export class PreviewAutomationExecutionError extends Schema.TaggedErrorClass()( +export class PreviewAutomationExecutionError extends Schema.TaggedError()( "PreviewAutomationExecutionError", { ...PreviewAutomationRequestErrorFields, @@ -763,7 +763,7 @@ export class PreviewAutomationExecutionError extends Schema.TaggedErrorClass

()(
+export class PreviewAutomationInvalidSelectorError extends Schema.TaggedError()(
   "PreviewAutomationInvalidSelectorError",
   {
     ...PreviewAutomationRequestErrorFields,
@@ -780,7 +780,7 @@ export class PreviewAutomationInvalidSelectorError extends Schema.TaggedErrorCla
   }
 }
 
-export class PreviewAutomationTargetNotEditableError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationTargetNotEditableError extends Schema.TaggedError()(
   "PreviewAutomationTargetNotEditableError",
   {
     ...PreviewAutomationRequestErrorFields,
@@ -800,7 +800,7 @@ export class PreviewAutomationTargetNotEditableError extends Schema.TaggedErrorC
   }
 }
 
-export class PreviewAutomationResultTooLargeError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationResultTooLargeError extends Schema.TaggedError()(
   "PreviewAutomationResultTooLargeError",
   {
     ...PreviewAutomationRequestErrorFields,
@@ -817,7 +817,7 @@ export class PreviewAutomationResultTooLargeError extends Schema.TaggedErrorClas
   }
 }
 
-export class PreviewAutomationClientDisconnectedError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationClientDisconnectedError extends Schema.TaggedError()(
   "PreviewAutomationClientDisconnectedError",
   PreviewAutomationRequestErrorFields,
 ) {
@@ -826,7 +826,7 @@ export class PreviewAutomationClientDisconnectedError extends Schema.TaggedError
   }
 }
 
-export class PreviewAutomationRequestQueueClosedError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationRequestQueueClosedError extends Schema.TaggedError()(
   "PreviewAutomationRequestQueueClosedError",
   PreviewAutomationRequestErrorFields,
 ) {
@@ -835,7 +835,7 @@ export class PreviewAutomationRequestQueueClosedError extends Schema.TaggedError
   }
 }
 
-export class PreviewAutomationRemoteUnavailableError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationRemoteUnavailableError extends Schema.TaggedError()(
   "PreviewAutomationRemoteUnavailableError",
   {
     ...PreviewAutomationRequestErrorFields,
@@ -847,7 +847,7 @@ export class PreviewAutomationRemoteUnavailableError extends Schema.TaggedErrorC
   }
 }
 
-export class PreviewAutomationMalformedResponseError extends Schema.TaggedErrorClass()(
+export class PreviewAutomationMalformedResponseError extends Schema.TaggedError()(
   "PreviewAutomationMalformedResponseError",
   PreviewAutomationRequestErrorFields,
 ) {
diff --git a/packages/contracts/src/project.ts b/packages/contracts/src/project.ts
index 757c000a065a..a0131fb710dd 100644
--- a/packages/contracts/src/project.ts
+++ b/packages/contracts/src/project.ts
@@ -105,7 +105,7 @@ function decodedProjectErrorMessage(props: object): string | undefined {
   return typeof props.message === "string" ? props.message : undefined;
 }
 
-export class ProjectSearchEntriesError extends Schema.TaggedErrorClass()(
+export class ProjectSearchEntriesError extends Schema.TaggedError()(
   "ProjectSearchEntriesError",
   {
     cwd: Schema.optional(TrimmedNonEmptyString),
@@ -138,7 +138,7 @@ export class ProjectSearchEntriesError extends Schema.TaggedErrorClass()(
+export class ProjectSearchContentsError extends Schema.TaggedError()(
   "ProjectSearchContentsError",
   {
     cwd: Schema.optional(TrimmedNonEmptyString),
@@ -169,7 +169,7 @@ export class ProjectSearchContentsError extends Schema.TaggedErrorClass()(
+export class ProjectListEntriesError extends Schema.TaggedError()(
   "ProjectListEntriesError",
   {
     cwd: Schema.optional(TrimmedNonEmptyString),
@@ -237,7 +237,7 @@ type ProjectFileFailureContext = {
   readonly cause?: unknown;
 };
 
-export class ProjectReadFileError extends Schema.TaggedErrorClass()(
+export class ProjectReadFileError extends Schema.TaggedError()(
   "ProjectReadFileError",
   {
     cwd: Schema.optional(TrimmedNonEmptyString),
@@ -274,7 +274,7 @@ export const ProjectWriteFileResult = Schema.Struct({
 });
 export type ProjectWriteFileResult = typeof ProjectWriteFileResult.Type;
 
-export class ProjectWriteFileError extends Schema.TaggedErrorClass()(
+export class ProjectWriteFileError extends Schema.TaggedError()(
   "ProjectWriteFileError",
   {
     cwd: Schema.optional(TrimmedNonEmptyString),
diff --git a/packages/contracts/src/pullRequest.ts b/packages/contracts/src/pullRequest.ts
index a49868937844..88679357f3d8 100644
--- a/packages/contracts/src/pullRequest.ts
+++ b/packages/contracts/src/pullRequest.ts
@@ -1071,7 +1071,7 @@ export function pullRequestProviderRequirement(
  * as-is; the underlying failure travels in `cause` (absent for `provider-unsupported`, which
  * has none).
  */
-export class PullRequestUnavailableError extends Schema.TaggedErrorClass()(
+export class PullRequestUnavailableError extends Schema.TaggedError()(
   "PullRequestUnavailableError",
   {
     reason: PullRequestUnavailableReason,
@@ -1100,7 +1100,7 @@ export class PullRequestUnavailableError extends Schema.TaggedErrorClass()(
+export class PullRequestOperationError extends Schema.TaggedError()(
   "PullRequestOperationError",
   {
     operation: Schema.String,
diff --git a/packages/contracts/src/relay.ts b/packages/contracts/src/relay.ts
index 52f7d7d43550..ae9aa813ac9f 100644
--- a/packages/contracts/src/relay.ts
+++ b/packages/contracts/src/relay.ts
@@ -330,7 +330,7 @@ export const RelayInternalErrorReason = Schema.Literals([
 ]);
 export type RelayInternalErrorReason = typeof RelayInternalErrorReason.Type;
 
-export class RelayAuthInvalidError extends Schema.TaggedErrorClass()(
+export class RelayAuthInvalidError extends Schema.TaggedError()(
   "RelayAuthInvalidError",
   {
     code: Schema.Literal("auth_invalid"),
@@ -344,7 +344,7 @@ export class RelayAuthInvalidError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentLinkProofExpiredError extends Schema.TaggedError()(
   "RelayEnvironmentLinkProofExpiredError",
   {
     code: Schema.Literal("environment_link_proof_expired"),
@@ -357,7 +357,7 @@ export class RelayEnvironmentLinkProofExpiredError extends Schema.TaggedErrorCla
   }
 }
 
-export class RelayEnvironmentLinkProofInvalidError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentLinkProofInvalidError extends Schema.TaggedError()(
   "RelayEnvironmentLinkProofInvalidError",
   {
     code: Schema.Literal("environment_link_proof_invalid"),
@@ -384,7 +384,7 @@ export const RelayEnvironmentConnectNotAuthorizedReason = Schema.Literals([
 export type RelayEnvironmentConnectNotAuthorizedReason =
   typeof RelayEnvironmentConnectNotAuthorizedReason.Type;
 
-export class RelayEnvironmentConnectNotAuthorizedError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentConnectNotAuthorizedError extends Schema.TaggedError()(
   "RelayEnvironmentConnectNotAuthorizedError",
   {
     code: Schema.Literal("environment_connect_not_authorized"),
@@ -402,7 +402,7 @@ export class RelayEnvironmentConnectNotAuthorizedError extends Schema.TaggedErro
   }
 }
 
-export class RelayEnvironmentEndpointUnavailableError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentEndpointUnavailableError extends Schema.TaggedError()(
   "RelayEnvironmentEndpointUnavailableError",
   {
     code: Schema.Literal("environment_endpoint_unavailable"),
@@ -416,7 +416,7 @@ export class RelayEnvironmentEndpointUnavailableError extends Schema.TaggedError
   }
 }
 
-export class RelayEnvironmentEndpointTimedOutError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentEndpointTimedOutError extends Schema.TaggedError()(
   "RelayEnvironmentEndpointTimedOutError",
   {
     code: Schema.Literal("environment_endpoint_timed_out"),
@@ -429,7 +429,7 @@ export class RelayEnvironmentEndpointTimedOutError extends Schema.TaggedErrorCla
   }
 }
 
-export class RelayEnvironmentLinkFailedError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentLinkFailedError extends Schema.TaggedError()(
   "RelayEnvironmentLinkFailedError",
   {
     code: Schema.Literal("environment_link_failed"),
@@ -443,7 +443,7 @@ export class RelayEnvironmentLinkFailedError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentLinkUnavailableError extends Schema.TaggedError()(
   "RelayEnvironmentLinkUnavailableError",
   {
     code: Schema.Literal("environment_link_unavailable"),
@@ -457,7 +457,7 @@ export class RelayEnvironmentLinkUnavailableError extends Schema.TaggedErrorClas
   }
 }
 
-export class RelayEnvironmentLinkLimitExceededError extends Schema.TaggedErrorClass()(
+export class RelayEnvironmentLinkLimitExceededError extends Schema.TaggedError()(
   "RelayEnvironmentLinkLimitExceededError",
   {
     code: Schema.Literal("environment_link_limit_exceeded"),
@@ -471,7 +471,7 @@ export class RelayEnvironmentLinkLimitExceededError extends Schema.TaggedErrorCl
   }
 }
 
-export class RelayAgentActivityPublishProofExpiredError extends Schema.TaggedErrorClass()(
+export class RelayAgentActivityPublishProofExpiredError extends Schema.TaggedError()(
   "RelayAgentActivityPublishProofExpiredError",
   {
     code: Schema.Literal("agent_activity_publish_proof_expired"),
@@ -484,7 +484,7 @@ export class RelayAgentActivityPublishProofExpiredError extends Schema.TaggedErr
   }
 }
 
-export class RelayAgentActivityPublishProofInvalidError extends Schema.TaggedErrorClass()(
+export class RelayAgentActivityPublishProofInvalidError extends Schema.TaggedError()(
   "RelayAgentActivityPublishProofInvalidError",
   {
     code: Schema.Literal("agent_activity_publish_proof_invalid"),
@@ -498,7 +498,7 @@ export class RelayAgentActivityPublishProofInvalidError extends Schema.TaggedErr
   }
 }
 
-export class RelayInternalError extends Schema.TaggedErrorClass()(
+export class RelayInternalError extends Schema.TaggedError()(
   "RelayInternalError",
   {
     code: Schema.Literal("internal_error"),
diff --git a/packages/contracts/src/relayClient.ts b/packages/contracts/src/relayClient.ts
index e78078d1eedb..0f8762cf06dd 100644
--- a/packages/contracts/src/relayClient.ts
+++ b/packages/contracts/src/relayClient.ts
@@ -54,7 +54,7 @@ export const RelayClientInstallFailureReasonSchema = Schema.Literals([
 ]);
 export type RelayClientInstallFailureReason = typeof RelayClientInstallFailureReasonSchema.Type;
 
-export class RelayClientInstallFailedError extends Schema.TaggedErrorClass()(
+export class RelayClientInstallFailedError extends Schema.TaggedError()(
   "RelayClientInstallFailedError",
   {
     reason: RelayClientInstallFailureReasonSchema,
diff --git a/packages/contracts/src/server.ts b/packages/contracts/src/server.ts
index 9791a4f62185..48949bc9e183 100644
--- a/packages/contracts/src/server.ts
+++ b/packages/contracts/src/server.ts
@@ -598,7 +598,7 @@ export const ServerProviderUpdateInput = Schema.Struct({
 });
 export type ServerProviderUpdateInput = typeof ServerProviderUpdateInput.Type;
 
-export class ServerProviderUpdateError extends Schema.TaggedErrorClass()(
+export class ServerProviderUpdateError extends Schema.TaggedError()(
   "ServerProviderUpdateError",
   {
     provider: ProviderDriverKind,
@@ -643,7 +643,7 @@ export const ServerSelfUpdateProgressEvent = Schema.Union([
 ]);
 export type ServerSelfUpdateProgressEvent = typeof ServerSelfUpdateProgressEvent.Type;
 
-export class ServerSelfUpdateError extends Schema.TaggedErrorClass()(
+export class ServerSelfUpdateError extends Schema.TaggedError()(
   "ServerSelfUpdateError",
   {
     reason: TrimmedNonEmptyString,
diff --git a/packages/contracts/src/settings.ts b/packages/contracts/src/settings.ts
index 0502d303d249..6f355499434f 100644
--- a/packages/contracts/src/settings.ts
+++ b/packages/contracts/src/settings.ts
@@ -733,7 +733,7 @@ export const ServerSettingsOperation = Schema.Literals([
 ]);
 export type ServerSettingsOperation = typeof ServerSettingsOperation.Type;
 
-export class ServerSettingsError extends Schema.TaggedErrorClass()(
+export class ServerSettingsError extends Schema.TaggedError()(
   "ServerSettingsError",
   {
     settingsPath: Schema.String,
diff --git a/packages/contracts/src/sourceControl.ts b/packages/contracts/src/sourceControl.ts
index 104aadd9161f..e79e933679eb 100644
--- a/packages/contracts/src/sourceControl.ts
+++ b/packages/contracts/src/sourceControl.ts
@@ -150,7 +150,7 @@ export const SourceControlDiscoveryResult = Schema.Struct({
 });
 export type SourceControlDiscoveryResult = typeof SourceControlDiscoveryResult.Type;
 
-export class SourceControlProviderError extends Schema.TaggedErrorClass()(
+export class SourceControlProviderError extends Schema.TaggedError()(
   "SourceControlProviderError",
   {
     provider: SourceControlProviderKind,
@@ -168,7 +168,7 @@ export class SourceControlProviderError extends Schema.TaggedErrorClass()(
+export class SourceControlRepositoryError extends Schema.TaggedError()(
   "SourceControlRepositoryError",
   {
     provider: SourceControlProviderKind,
diff --git a/packages/contracts/src/terminal.ts b/packages/contracts/src/terminal.ts
index fa5f18211695..a296375bca90 100644
--- a/packages/contracts/src/terminal.ts
+++ b/packages/contracts/src/terminal.ts
@@ -232,7 +232,7 @@ export const TerminalAttachStreamEvent = Schema.Union([
 ]);
 export type TerminalAttachStreamEvent = typeof TerminalAttachStreamEvent.Type;
 
-export class TerminalCwdNotFoundError extends Schema.TaggedErrorClass()(
+export class TerminalCwdNotFoundError extends Schema.TaggedError()(
   "TerminalCwdNotFoundError",
   {
     cwd: Schema.String,
@@ -243,7 +243,7 @@ export class TerminalCwdNotFoundError extends Schema.TaggedErrorClass()(
+export class TerminalCwdNotDirectoryError extends Schema.TaggedError()(
   "TerminalCwdNotDirectoryError",
   {
     cwd: Schema.String,
@@ -254,7 +254,7 @@ export class TerminalCwdNotDirectoryError extends Schema.TaggedErrorClass()(
+export class TerminalCwdStatError extends Schema.TaggedError()(
   "TerminalCwdStatError",
   {
     cwd: Schema.String,
@@ -273,7 +273,7 @@ export const TerminalCwdError = Schema.Union([
 ]);
 export type TerminalCwdError = typeof TerminalCwdError.Type;
 
-export class TerminalHistoryError extends Schema.TaggedErrorClass()(
+export class TerminalHistoryError extends Schema.TaggedError()(
   "TerminalHistoryError",
   {
     operation: Schema.Literals(["read", "truncate", "migrate"]),
@@ -287,7 +287,7 @@ export class TerminalHistoryError extends Schema.TaggedErrorClass()(
+export class TerminalSessionLookupError extends Schema.TaggedError()(
   "TerminalSessionLookupError",
   {
     threadId: Schema.String,
@@ -299,7 +299,7 @@ export class TerminalSessionLookupError extends Schema.TaggedErrorClass()(
+export class TerminalNotRunningError extends Schema.TaggedError()(
   "TerminalNotRunningError",
   {
     threadId: Schema.String,
@@ -311,7 +311,7 @@ export class TerminalNotRunningError extends Schema.TaggedErrorClass()(
+export class TerminalWriteError extends Schema.TaggedError()(
   "TerminalWriteError",
   {
     threadId: Schema.String,
@@ -325,7 +325,7 @@ export class TerminalWriteError extends Schema.TaggedErrorClass()(
+export class TerminalResizeError extends Schema.TaggedError()(
   "TerminalResizeError",
   {
     threadId: Schema.String,
diff --git a/packages/contracts/src/usage.ts b/packages/contracts/src/usage.ts
index cde888a6153e..6fbbd4052363 100644
--- a/packages/contracts/src/usage.ts
+++ b/packages/contracts/src/usage.ts
@@ -193,7 +193,7 @@ export const UsageSummary = Schema.Struct({
 });
 export type UsageSummary = typeof UsageSummary.Type;
 
-export class UsageReadError extends Schema.TaggedErrorClass()("UsageReadError", {
+export class UsageReadError extends Schema.TaggedError()("UsageReadError", {
   reason: Schema.Literals(["scanFailed", "invalidWindow"]),
   /** Stable, bounded description. The underlying failure travels in `cause`. */
   detail: TrimmedNonEmptyString,
diff --git a/packages/contracts/src/vcs.ts b/packages/contracts/src/vcs.ts
index a0956e83bd5b..1f38c7cb718e 100644
--- a/packages/contracts/src/vcs.ts
+++ b/packages/contracts/src/vcs.ts
@@ -87,7 +87,7 @@ export interface VcsProcessExitFailure {
   readonly stderrTruncated: boolean;
 }
 
-export class VcsProcessSpawnError extends Schema.TaggedErrorClass()(
+export class VcsProcessSpawnError extends Schema.TaggedError()(
   "VcsProcessSpawnError",
   {
     operation: Schema.String,
@@ -109,7 +109,7 @@ export class VcsProcessSpawnError extends Schema.TaggedErrorClass()(
+export class VcsProcessExitError extends Schema.TaggedError()(
   "VcsProcessExitError",
   {
     operation: Schema.String,
@@ -156,7 +156,7 @@ export class VcsProcessExitError extends Schema.TaggedErrorClass()(
+export class VcsProcessTimeoutError extends Schema.TaggedError()(
   "VcsProcessTimeoutError",
   {
     operation: Schema.String,
@@ -185,7 +185,7 @@ const VcsProcessBoundaryErrorFields = {
   argumentCount: Schema.optional(NonNegativeInt),
 };
 
-export class VcsProcessStdinWriteError extends Schema.TaggedErrorClass()(
+export class VcsProcessStdinWriteError extends Schema.TaggedError()(
   "VcsProcessStdinWriteError",
   {
     ...VcsProcessBoundaryErrorFields,
@@ -198,7 +198,7 @@ export class VcsProcessStdinWriteError extends Schema.TaggedErrorClass()(
+export class VcsProcessOutputReadError extends Schema.TaggedError()(
   "VcsProcessOutputReadError",
   {
     ...VcsProcessBoundaryErrorFields,
@@ -211,7 +211,7 @@ export class VcsProcessOutputReadError extends Schema.TaggedErrorClass()(
+export class VcsProcessOutputLimitError extends Schema.TaggedError()(
   "VcsProcessOutputLimitError",
   {
     ...VcsProcessBoundaryErrorFields,
@@ -225,7 +225,7 @@ export class VcsProcessOutputLimitError extends Schema.TaggedErrorClass()(
+export class VcsProcessMissingExitCodeError extends Schema.TaggedError()(
   "VcsProcessMissingExitCodeError",
   VcsProcessBoundaryErrorFields,
 ) {
@@ -242,7 +242,7 @@ export const VcsOutputDecodeError = Schema.Union([
 ]);
 export type VcsOutputDecodeError = typeof VcsOutputDecodeError.Type;
 
-export class VcsRepositoryDetectionError extends Schema.TaggedErrorClass()(
+export class VcsRepositoryDetectionError extends Schema.TaggedError()(
   "VcsRepositoryDetectionError",
   {
     operation: Schema.String,
@@ -256,7 +256,7 @@ export class VcsRepositoryDetectionError extends Schema.TaggedErrorClass()(
+export class VcsUnsupportedOperationError extends Schema.TaggedError()(
   "VcsUnsupportedOperationError",
   {
     operation: Schema.String,
diff --git a/packages/effect-acp/src/_internal/shared.ts b/packages/effect-acp/src/_internal/shared.ts
index f54f81e2a083..7c26c2f30ade 100644
--- a/packages/effect-acp/src/_internal/shared.ts
+++ b/packages/effect-acp/src/_internal/shared.ts
@@ -74,7 +74,9 @@ export function decodeExtNotificationRegistration(
 const encoder = new TextEncoder();
 
 const JsonRpcId = Schema.Union([Schema.Number, Schema.String]);
-const JsonRpcHeaders = Schema.Array(Schema.Unknown);
+const JsonRpcHeaders = Schema.Array(Schema.Unknown).pipe(
+  Schema.withDecodingDefaultKey(Effect.succeed([])),
+);
 
 export const jsonRpcRequest = (method: string, params: Schema.Codec) =>
   Schema.Struct({
diff --git a/packages/effect-acp/src/errors.ts b/packages/effect-acp/src/errors.ts
index a3e6ffa65c2e..4f3a37e2032e 100644
--- a/packages/effect-acp/src/errors.ts
+++ b/packages/effect-acp/src/errors.ts
@@ -79,7 +79,7 @@ export interface AcpRequestDiagnostics {
   readonly maximumPathDepth?: number;
 }
 
-export class AcpSpawnError extends Schema.TaggedErrorClass()("AcpSpawnError", {
+export class AcpSpawnError extends Schema.TaggedError()("AcpSpawnError", {
   command: Schema.optional(Schema.String),
   cause: Schema.Defect(),
 }) {
@@ -90,7 +90,7 @@ export class AcpSpawnError extends Schema.TaggedErrorClass()("Acp
   }
 }
 
-export class AcpProcessExitedError extends Schema.TaggedErrorClass()(
+export class AcpProcessExitedError extends Schema.TaggedError()(
   "AcpProcessExitedError",
   {
     code: Schema.optional(Schema.Number),
@@ -112,7 +112,7 @@ export const AcpProtocolParseOperation = Schema.Literals([
 ]);
 export type AcpProtocolParseOperation = typeof AcpProtocolParseOperation.Type;
 
-export class AcpProtocolParseError extends Schema.TaggedErrorClass()(
+export class AcpProtocolParseError extends Schema.TaggedError()(
   "AcpProtocolParseError",
   {
     operation: AcpProtocolParseOperation,
@@ -156,7 +156,7 @@ export class AcpProtocolParseError extends Schema.TaggedErrorClass()(
+export class AcpTransportError extends Schema.TaggedError()(
   "AcpTransportError",
   {
     operation: Schema.optional(
@@ -176,7 +176,7 @@ export class AcpTransportError extends Schema.TaggedErrorClass()(
+export class AcpInputStreamEndedError extends Schema.TaggedError()(
   "AcpInputStreamEndedError",
   {},
 ) {
@@ -185,7 +185,7 @@ export class AcpInputStreamEndedError extends Schema.TaggedErrorClass()("AcpRequestError", {
+export class AcpRequestError extends Schema.TaggedError()("AcpRequestError", {
   code: AcpSchema.ErrorCode,
   errorMessage: Schema.String,
   data: Schema.optional(Schema.Unknown),
diff --git a/packages/effect-acp/src/protocol.test.ts b/packages/effect-acp/src/protocol.test.ts
index a66cc75225da..07c4ea8e5f2b 100644
--- a/packages/effect-acp/src/protocol.test.ts
+++ b/packages/effect-acp/src/protocol.test.ts
@@ -212,7 +212,7 @@ it.layer(NodeServices.layer)("effect-acp protocol", (it) => {
           direction: "outgoing",
           stage: "raw",
           payload:
-            '{"jsonrpc":"2.0","method":"session/cancel","params":{"sessionId":"session-1"},"id":"","headers":[]}\n',
+            '{"jsonrpc":"2.0","method":"session/cancel","params":{"sessionId":"session-1"},"id":""}\n',
         },
       ]);
     }),
diff --git a/packages/effect-acp/src/protocol.ts b/packages/effect-acp/src/protocol.ts
index d61641fbb7b5..fa096ae5ccee 100644
--- a/packages/effect-acp/src/protocol.ts
+++ b/packages/effect-acp/src/protocol.ts
@@ -513,6 +513,7 @@ export const makeAcpPatchedProtocol = Effect.fn("makeAcpPatchedProtocol")(functi
     supportsAck: true,
     supportsTransferables: false,
     supportsSpanPropagation: true,
+    supportsNotifications: true,
   });
 
   const sendNotification = Effect.fn("sendNotification")(function* (
diff --git a/packages/effect-codex-app-server/scripts/generate.ts b/packages/effect-codex-app-server/scripts/generate.ts
index 9f23a144524d..766a1069c61d 100644
--- a/packages/effect-codex-app-server/scripts/generate.ts
+++ b/packages/effect-codex-app-server/scripts/generate.ts
@@ -61,7 +61,7 @@ interface JsonSchemaFile {
   readonly qualifiedName: string;
 }
 
-class GeneratorError extends Schema.TaggedErrorClass()("GeneratorError", {
+class GeneratorError extends Schema.TaggedError()("GeneratorError", {
   detail: Schema.String,
   cause: Schema.optional(Schema.Defect()),
 }) {
diff --git a/packages/effect-codex-app-server/src/errors.ts b/packages/effect-codex-app-server/src/errors.ts
index f0e0945d352b..c7604c642135 100644
--- a/packages/effect-codex-app-server/src/errors.ts
+++ b/packages/effect-codex-app-server/src/errors.ts
@@ -128,7 +128,7 @@ export interface CodexAppServerProtocolErrorShape {
   readonly data?: unknown;
 }
 
-export class CodexAppServerSpawnError extends Schema.TaggedErrorClass()(
+export class CodexAppServerSpawnError extends Schema.TaggedError()(
   "CodexAppServerSpawnError",
   {
     command: Schema.optional(Schema.String),
@@ -142,7 +142,7 @@ export class CodexAppServerSpawnError extends Schema.TaggedErrorClass()(
+export class CodexAppServerProcessExitedError extends Schema.TaggedError()(
   "CodexAppServerProcessExitedError",
   {
     code: Schema.optional(Schema.Number),
@@ -157,7 +157,7 @@ export class CodexAppServerProcessExitedError extends Schema.TaggedErrorClass()(
+export class CodexAppServerProtocolParseError extends Schema.TaggedError()(
   "CodexAppServerProtocolParseError",
   {
     operation: CodexAppServerProtocolParseOperation,
@@ -230,7 +230,7 @@ export class CodexAppServerProtocolParseError extends Schema.TaggedErrorClass()(
+export class CodexAppServerTransportError extends Schema.TaggedError()(
   "CodexAppServerTransportError",
   {
     operation: CodexAppServerTransportOperation,
@@ -243,7 +243,7 @@ export class CodexAppServerTransportError extends Schema.TaggedErrorClass()(
+export class CodexAppServerIdentifierGenerationError extends Schema.TaggedError()(
   "CodexAppServerIdentifierGenerationError",
   {
     purpose: CodexAppServerIdentifierPurpose,
@@ -255,7 +255,7 @@ export class CodexAppServerIdentifierGenerationError extends Schema.TaggedErrorC
   }
 }
 
-export class CodexAppServerInputStreamEndedError extends Schema.TaggedErrorClass()(
+export class CodexAppServerInputStreamEndedError extends Schema.TaggedError()(
   "CodexAppServerInputStreamEndedError",
   {},
 ) {
@@ -264,7 +264,7 @@ export class CodexAppServerInputStreamEndedError extends Schema.TaggedErrorClass
   }
 }
 
-export class CodexAppServerRequestError extends Schema.TaggedErrorClass()(
+export class CodexAppServerRequestError extends Schema.TaggedError()(
   "CodexAppServerRequestError",
   {
     code: Schema.Number,
diff --git a/packages/shared/src/logging.ts b/packages/shared/src/logging.ts
index ac3d56e28e89..b75c4f6fac33 100644
--- a/packages/shared/src/logging.ts
+++ b/packages/shared/src/logging.ts
@@ -10,7 +10,7 @@ export interface RotatingFileSinkOptions {
   readonly throwOnError?: boolean;
 }
 
-export class RotatingFileSinkConfigurationError extends Schema.TaggedErrorClass()(
+export class RotatingFileSinkConfigurationError extends Schema.TaggedError()(
   "RotatingFileSinkConfigurationError",
   {
     option: Schema.Literals(["maxBytes", "maxFiles"]),
@@ -23,7 +23,7 @@ export class RotatingFileSinkConfigurationError extends Schema.TaggedErrorClass<
   }
 }
 
-export class RotatingFileSinkError extends Schema.TaggedErrorClass()(
+export class RotatingFileSinkError extends Schema.TaggedError()(
   "RotatingFileSinkError",
   {
     operation: Schema.Literals(["initialize", "read", "write", "rotate", "prune"]),
diff --git a/packages/shared/src/oauthScope.ts b/packages/shared/src/oauthScope.ts
index 4f4274406605..9b5ba6f20db1 100644
--- a/packages/shared/src/oauthScope.ts
+++ b/packages/shared/src/oauthScope.ts
@@ -2,7 +2,7 @@ import * as Schema from "effect/Schema";
 
 const OAUTH_SCOPE_TOKEN = /^[\u0021\u0023-\u005b\u005d-\u007e]+$/u;
 
-export class OAuthScopeEncodingError extends Schema.TaggedErrorClass()(
+export class OAuthScopeEncodingError extends Schema.TaggedError()(
   "OAuthScopeEncodingError",
   {
     scopes: Schema.Array(Schema.String),
diff --git a/packages/shared/src/preview.ts b/packages/shared/src/preview.ts
index 926b30966e52..2bf12d59736a 100644
--- a/packages/shared/src/preview.ts
+++ b/packages/shared/src/preview.ts
@@ -47,7 +47,7 @@ export function isPreviewableUrl(rawUrl: string): boolean {
   }
 }
 
-export class PreviewUrlNormalizationError extends Schema.TaggedErrorClass()(
+export class PreviewUrlNormalizationError extends Schema.TaggedError()(
   "PreviewUrlNormalizationError",
   {
     inputLength: Schema.Number,
diff --git a/packages/shared/src/relayAuth.ts b/packages/shared/src/relayAuth.ts
index a384db77d8ac..273016469cd5 100644
--- a/packages/shared/src/relayAuth.ts
+++ b/packages/shared/src/relayAuth.ts
@@ -2,7 +2,7 @@ import * as Schema from "effect/Schema";
 
 const ClerkPublishableKeyPrefix = Schema.Literals(["pk_test", "pk_live", "unknown"]);
 
-export class ClerkPublishableKeyDecodeError extends Schema.TaggedErrorClass()(
+export class ClerkPublishableKeyDecodeError extends Schema.TaggedError()(
   "ClerkPublishableKeyDecodeError",
   {
     keyPrefix: ClerkPublishableKeyPrefix,
@@ -14,7 +14,7 @@ export class ClerkPublishableKeyDecodeError extends Schema.TaggedErrorClass()(
+export class ClerkPublishableKeyFrontendApiError extends Schema.TaggedError()(
   "ClerkPublishableKeyFrontendApiError",
   {
     keyPrefix: ClerkPublishableKeyPrefix,
diff --git a/packages/shared/src/relayJwt.ts b/packages/shared/src/relayJwt.ts
index 9e848bedfb02..f63f458a2253 100644
--- a/packages/shared/src/relayJwt.ts
+++ b/packages/shared/src/relayJwt.ts
@@ -11,7 +11,7 @@ export const RELAY_MINT_RESPONSE_TYP = "t3-env-mint+jwt";
 export const RELAY_HEALTH_RESPONSE_TYP = "t3-env-health+jwt";
 export const RELAY_ACTIVITY_PUBLISH_TYP = "t3-env-activity+jwt";
 
-export class RelayJwtError extends Schema.TaggedErrorClass()("RelayJwtError", {
+export class RelayJwtError extends Schema.TaggedError()("RelayJwtError", {
   operation: Schema.Literals(["sign", "verify"]),
   typ: Schema.String,
   issuer: Schema.optional(Schema.String),
diff --git a/packages/shared/src/remote.ts b/packages/shared/src/remote.ts
index 1b5d1c586e22..55698568fb9e 100644
--- a/packages/shared/src/remote.ts
+++ b/packages/shared/src/remote.ts
@@ -8,7 +8,7 @@ const SUPPORTED_REMOTE_BACKEND_PROTOCOLS = new Set(["http:", "https:", "ws:", "w
 export const readHashParams = (url: URL): URLSearchParams =>
   new URLSearchParams(url.hash.startsWith("#") ? url.hash.slice(1) : url.hash);
 
-export class RemoteBackendUrlMissingError extends Schema.TaggedErrorClass()(
+export class RemoteBackendUrlMissingError extends Schema.TaggedError()(
   "RemoteBackendUrlMissingError",
   {},
 ) {
@@ -17,7 +17,7 @@ export class RemoteBackendUrlMissingError extends Schema.TaggedErrorClass()(
+export class RemotePairingUrlInvalidError extends Schema.TaggedError()(
   "RemotePairingUrlInvalidError",
   {
     cause: Schema.optional(Schema.Defect()),
@@ -29,7 +29,7 @@ export class RemotePairingUrlInvalidError extends Schema.TaggedErrorClass()(
+export class RemoteBackendUrlInvalidError extends Schema.TaggedError()(
   "RemoteBackendUrlInvalidError",
   {
     source: Schema.Literals(["direct-host", "hosted-pairing-host"]),
@@ -42,7 +42,7 @@ export class RemoteBackendUrlInvalidError extends Schema.TaggedErrorClass()(
+export class RemotePairingTokenMissingError extends Schema.TaggedError()(
   "RemotePairingTokenMissingError",
   { host: Schema.String },
 ) {
@@ -51,7 +51,7 @@ export class RemotePairingTokenMissingError extends Schema.TaggedErrorClass()(
+export class RemotePairingCodeMissingError extends Schema.TaggedError()(
   "RemotePairingCodeMissingError",
   { host: Schema.String },
 ) {
diff --git a/packages/tailscale/src/tailscale.ts b/packages/tailscale/src/tailscale.ts
index 7260a9de11bb..edb3695da553 100644
--- a/packages/tailscale/src/tailscale.ts
+++ b/packages/tailscale/src/tailscale.ts
@@ -54,7 +54,7 @@ export const stderrDiagnosticOf = (stderr: string): TailscaleStderrDiagnostic |
   return STDERR_DIAGNOSTIC_PATTERNS.find(([pattern]) => pattern.test(stderr))?.[1] ?? "unknown";
 };
 
-export class TailscaleCommandSpawnError extends Schema.TaggedErrorClass()(
+export class TailscaleCommandSpawnError extends Schema.TaggedError()(
   "TailscaleCommandSpawnError",
   {
     ...TailscaleCommandContext,
@@ -66,7 +66,7 @@ export class TailscaleCommandSpawnError extends Schema.TaggedErrorClass()(
+export class TailscaleCommandOutputError extends Schema.TaggedError()(
   "TailscaleCommandOutputError",
   {
     ...TailscaleCommandContext,
@@ -78,7 +78,7 @@ export class TailscaleCommandOutputError extends Schema.TaggedErrorClass()(
+export class TailscaleCommandExitError extends Schema.TaggedError()(
   "TailscaleCommandExitError",
   {
     ...TailscaleCommandContext,
@@ -98,7 +98,7 @@ export class TailscaleCommandExitError extends Schema.TaggedErrorClass()(
+export class TailscaleCommandTimeoutError extends Schema.TaggedError()(
   "TailscaleCommandTimeoutError",
   {
     ...TailscaleCommandContext,
@@ -119,7 +119,7 @@ export const TailscaleCommandError = Schema.Union([
 ]);
 export type TailscaleCommandError = typeof TailscaleCommandError.Type;
 
-export class TailscaleStatusParseError extends Schema.TaggedErrorClass()(
+export class TailscaleStatusParseError extends Schema.TaggedError()(
   "TailscaleStatusParseError",
   { cause: Schema.Defect() },
 ) {
diff --git a/patches/@effect__vitest@4.0.0-beta.103.patch b/patches/@effect__vitest@4.0.0-beta.103.patch
deleted file mode 100644
index f3578570837a..000000000000
--- a/patches/@effect__vitest@4.0.0-beta.103.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/dist/index.d.ts b/dist/index.d.ts
-index a364638..4ee44c2 100644
---- a/dist/index.d.ts
-+++ b/dist/index.d.ts
-@@ -7,11 +7,11 @@ import type * as Layer from "effect/Layer";
- import type * as Schema from "effect/Schema";
- import type * as Scope from "effect/Scope";
- import type * as FC from "effect/testing/FastCheck";
--import * as V from "vitest";
-+import * as V from "vite-plus/test";
- /**
-  * @since 4.0.0
-  */
--export * from "vitest";
-+export * from "vite-plus/test";
- /**
-  * @since 4.0.0
-  */
-diff --git a/dist/index.js b/dist/index.js
-index a1a89bd..687df5a 100644
---- a/dist/index.js
-+++ b/dist/index.js
-@@ -1,9 +1,9 @@
--import * as V from "vitest";
-+import * as V from "vite-plus/test";
- import * as internal from "./internal/internal.js";
- /**
-  * @since 4.0.0
-  */
--export * from "vitest";
-+export * from "vite-plus/test";
- /**
-  * @since 4.0.0
-  */
-diff --git a/dist/internal/internal.js b/dist/internal/internal.js
-index fe41479..8ae751c 100644
---- a/dist/internal/internal.js
-+++ b/dist/internal/internal.js
-@@ -15,7 +15,7 @@ import * as Scope from "effect/Scope";
- import * as fc from "effect/testing/FastCheck";
- import * as TestClock from "effect/testing/TestClock";
- import * as TestConsole from "effect/testing/TestConsole";
--import * as V from "vitest";
-+import * as V from "vite-plus/test";
- const getCurrentSuite = V.TestRunner.getCurrentSuite;
- const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {
-   const exit = yield* Effect.exit(effect);
-diff --git a/dist/utils.js b/dist/utils.js
-index 4871215..2c46e2b 100644
---- a/dist/utils.js
-+++ b/dist/utils.js
-@@ -4,7 +4,7 @@ import * as Option from "effect/Option";
- import * as Predicate from "effect/Predicate";
- import * as Result from "effect/Result";
- import * as assert from "node:assert";
--import { assert as vassert } from "vitest";
-+import { assert as vassert } from "vite-plus/test";
- // ----------------------------
- // Primitives
- // ----------------------------
-diff --git a/src/index.ts b/src/index.ts
-index b524786..8d4025d 100644
---- a/src/index.ts
-+++ b/src/index.ts
-@@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer"
- import type * as Schema from "effect/Schema"
- import type * as Scope from "effect/Scope"
- import type * as FC from "effect/testing/FastCheck"
--import * as V from "vitest"
-+import * as V from "vite-plus/test"
- import * as internal from "./internal/internal.ts"
- 
- /**
-  * @since 4.0.0
-  */
--export * from "vitest"
-+export * from "vite-plus/test"
- 
- /**
-  * @since 4.0.0
-diff --git a/src/internal/internal.ts b/src/internal/internal.ts
-index d4040a0..f02fc9d 100644
---- a/src/internal/internal.ts
-+++ b/src/internal/internal.ts
-@@ -16,7 +16,7 @@ import * as Scope from "effect/Scope"
- import * as fc from "effect/testing/FastCheck"
- import * as TestClock from "effect/testing/TestClock"
- import * as TestConsole from "effect/testing/TestConsole"
--import * as V from "vitest"
-+import * as V from "vite-plus/test"
- import type * as Vitest from "../index.ts"
- 
- const getCurrentSuite = V.TestRunner.getCurrentSuite
-diff --git a/src/utils.ts b/src/utils.ts
-index 4a4612c..846bcc9 100644
---- a/src/utils.ts
-+++ b/src/utils.ts
-@@ -16,7 +16,7 @@ import * as Option from "effect/Option"
- import * as Predicate from "effect/Predicate"
- import * as Result from "effect/Result"
- import * as assert from "node:assert"
--import { assert as vassert } from "vitest"
-+import { assert as vassert } from "vite-plus/test"
- 
- // ----------------------------
- // Primitives
diff --git a/patches/effect@4.0.0-beta.103.patch b/patches/effect@4.0.0-beta.103.patch
deleted file mode 100644
index a46ccf9c9764..000000000000
--- a/patches/effect@4.0.0-beta.103.patch
+++ /dev/null
@@ -1,328 +0,0 @@
-diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js
-index 755e41c..dc431aa 100644
---- a/dist/unstable/ai/McpServer.js
-+++ b/dist/unstable/ai/McpServer.js
-@@ -262,6 +262,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options,
-   const server = yield* McpServer;
-   const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
-   const sessions = protocolState.sessions;
-+  if (isHttp && options.path !== undefined) {
-+    const router = yield* HttpRouter.HttpRouter;
-+    yield* router.add("DELETE", options.path, Effect.gen(function* () {
-+      const request = yield* HttpServerRequest.HttpServerRequest;
-+      const sessionId = request.headers[MCP_SESSION_ID_HEADER];
-+      if (sessionId === undefined) {
-+        return HttpServerResponse.empty({
-+          status: 400
-+        });
-+      }
-+      if (!sessions.bySessionId.delete(sessionId)) {
-+        return HttpServerResponse.empty({
-+          status: 404
-+        });
-+      }
-+      return HttpServerResponse.empty({
-+        status: 204
-+      });
-+    }));
-+  }
-   const clientProtocols = new Map();
-   const cancelledRequests = new Map();
-   const handlers = yield* Layer.build(layerHandlers(options, {
-@@ -719,7 +739,7 @@ export const layerHttp = options => {
-   const methodNotAllowed = request => Effect.succeed(request.headers.origin !== undefined && !options.allowedOrigins?.includes(request.headers.origin) ? HttpServerResponse.empty({
-     status: 403
-   }) : methodNotAllowedResponse);
--  const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
-+  const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
-   return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
- };
- const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
-diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts
-index aba2779..581d267 100644
---- a/dist/unstable/rpc/RpcClient.d.ts
-+++ b/dist/unstable/rpc/RpcClient.d.ts
-@@ -2,6 +2,7 @@ import * as Cause from "../../Cause.ts";
- import * as Context from "../../Context.ts";
- import type * as Duration from "../../Duration.ts";
- import * as Effect from "../../Effect.ts";
-+import * as Exit from "../../Exit.ts";
- import * as Layer from "../../Layer.ts";
- import * as Queue from "../../Queue.ts";
- import * as Schedule from "../../Schedule.ts";
-@@ -261,9 +262,40 @@ export declare const layerProtocolWorker: (options: {
-     readonly targetUtilization?: number | undefined;
-     readonly timeToLive: Duration.Input;
- }) => Layer.Layer;
-+declare const RequestHooks_base: Context.ServiceClass Effect.Effect) | undefined;
-+    readonly onRequestChunk?: ((info: {
-+        readonly id: RequestId;
-+        readonly tag: string;
-+        readonly chunkCount: number;
-+    }) => Effect.Effect) | undefined;
-+    readonly onRequestExit?: ((info: {
-+        readonly id: RequestId;
-+        readonly tag: string;
-+        readonly stream: boolean;
-+        readonly exit: Exit.Exit;
-+    }) => Effect.Effect) | undefined;
-+    readonly onRequestInterrupt?: ((info: {
-+        readonly id: RequestId;
-+        readonly tag?: string | undefined;
-+    }) => Effect.Effect) | undefined;
-+}>;
-+/**
-+ * @since 4.0.0
-+ * @category RequestHooks
-+ */
-+export declare class RequestHooks extends RequestHooks_base {
-+}
- declare const ConnectionHooks_base: Context.ServiceClass;
-     readonly onDisconnect: Effect.Effect;
-+    readonly onPing?: Effect.Effect | undefined;
-+    readonly onPong?: Effect.Effect | undefined;
-+    readonly onPingTimeout?: Effect.Effect | undefined;
- }>;
- /**
-  * Represents optional client protocol hooks that run when a transport connects
-diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js
-index b536d0a..12ffac0 100644
---- a/dist/unstable/rpc/RpcClient.js
-+++ b/dist/unstable/rpc/RpcClient.js
-@@ -47,6 +47,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-   const services = yield* Effect.context();
-   const scope = Context.get(services, Scope.Scope);
-   const entries = new Map();
-+  const hooks = yield* Effect.serviceOption(RequestHooks);
-   let isShutdown = false;
-   yield* Scope.addFinalizer(scope, Effect.withFiber(parent => {
-     isShutdown = true;
-@@ -84,6 +85,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-       return Effect.interrupt;
-     }
-     const id = generateRequestId();
-+    const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
-+      id,
-+      tag: rpc._tag,
-+      stream: false
-+    }) : Effect.void;
-     const send = middleware(message => options.onFromClient({
-       message,
-       context,
-@@ -101,7 +107,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-       headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers)
-     });
-     if (discard) {
--      return send;
-+      return onStart.pipe(Effect.andThen(send));
-     }
-     let fiber;
-     return Effect.onInterrupt(Effect.callback(resume => {
-@@ -119,7 +125,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-         }
-       };
-       entries.set(id, entry);
--      fiber = send.pipe(span ? Effect.withParentSpan(span, {
-+      fiber = onStart.pipe(Effect.andThen(send), span ? Effect.withParentSpan(span, {
-         captureStackTrace: false
-       }) : identity, Effect.runForkWith(parentFiber.context));
-       fiber.addObserver(exit => {
-@@ -128,8 +134,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-         }
-       });
-     }), interruptors => {
-+      const entry = entries.get(id);
-       entries.delete(id);
--      return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context));
-+      return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context, entry?.rpc._tag));
-     });
-   });
-   const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) {
-@@ -141,11 +148,17 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-     });
-     const fiber = Fiber.getCurrent();
-     const id = generateRequestId();
-+    const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
-+      id,
-+      tag: rpc._tag,
-+      stream: true
-+    }) : Effect.void;
-     const scope = Context.getUnsafe(fiber.context, Scope.Scope);
-     yield* Scope.addFinalizerExit(scope, exit => {
--      if (!entries.has(id)) return Effect.void;
-+      const entry = entries.get(id);
-+      if (!entry) return Effect.void;
-       entries.delete(id);
--      return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context);
-+      return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag);
-     });
-     const queue = yield* Queue.bounded(streamBufferSize);
-     entries.set(id, {
-@@ -153,9 +166,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-       rpc,
-       queue,
-       scope,
--      context
-+      context,
-+      chunkCount: 0
-     });
--    yield* middleware(message => options.onFromClient({
-+    yield* onStart.pipe(Effect.andThen(middleware(message => options.onFromClient({
-       message,
-       context,
-       discard: false
-@@ -170,7 +184,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-         sampled: span.sampled
-       } : {}),
-       headers: Headers.merge(fiber.getRef(CurrentHeaders), headers)
--    }).pipe(span ? Effect.withParentSpan(span, {
-+    }))).pipe(span ? Effect.withParentSpan(span, {
-       captureStackTrace: false
-     }) : identity, Effect.catchCause(error => Queue.failCause(queue, error)), Effect.interruptible, Effect.forkIn(scope, {
-       startImmediately: true
-@@ -200,7 +214,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-       });
-     };
-   };
--  const sendInterrupt = (requestId, interruptors, context) => Effect.callback(resume => {
-+  const sendInterrupt = (requestId, interruptors, context, tag) => (Option.isSome(hooks) && hooks.value.onRequestInterrupt ? hooks.value.onRequestInterrupt({
-+    id: requestId,
-+    tag
-+  }) : Effect.void).pipe(Effect.andThen(Effect.callback(resume => {
-     const parentFiber = Fiber.getCurrent();
-     const fiber = options.onFromClient({
-       message: {
-@@ -214,7 +231,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-     fiber.addObserver(() => {
-       resume(Effect.void);
-     });
--  });
-+  })));
-   const write = message => {
-     switch (message._tag) {
-       case "Chunk":
-@@ -222,7 +239,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-           const requestId = message.requestId;
-           const entry = entries.get(requestId);
-           if (!entry || entry._tag !== "Queue") return Effect.void;
--          return Queue.offerAll(entry.queue, message.values).pipe(supportsAck ? Effect.flatMap(() => options.onFromClient({
-+          const chunkCount = entry.chunkCount += message.values.length;
-+          const onChunk = Option.isSome(hooks) && hooks.value.onRequestChunk ? hooks.value.onRequestChunk({
-+            id: requestId,
-+            tag: entry.rpc._tag,
-+            chunkCount
-+          }) : Effect.void;
-+          return Queue.offerAll(entry.queue, message.values).pipe(Effect.andThen(onChunk), supportsAck ? Effect.flatMap(() => options.onFromClient({
-             message: {
-               _tag: "Ack",
-               requestId: message.requestId
-@@ -237,11 +260,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
-           const entry = entries.get(requestId);
-           if (!entry) return Effect.void;
-           entries.delete(requestId);
-+          const onExit = Option.isSome(hooks) && hooks.value.onRequestExit ? hooks.value.onRequestExit({
-+            id: requestId,
-+            tag: entry.rpc._tag,
-+            stream: entry._tag === "Queue",
-+            exit: message.exit
-+          }) : Effect.void;
-           if (entry._tag === "Effect") {
--            entry.resume(message.exit);
--            return Effect.void;
-+            return onExit.pipe(Effect.andThen(Effect.sync(() => {
-+              entry.resume(message.exit);
-+            })));
-           }
--          return message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause);
-+          return onExit.pipe(Effect.andThen(message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause)));
-         }
-       case "Defect":
-         {
-@@ -590,7 +620,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
-   const requestClientMap = new Map();
-   const write = yield* socket.writer;
-   let parser = serialization.makeUnsafe();
--  const pinger = yield* makePinger(write(parser.encode(constPing)));
-+  const pinger = yield* makePinger(write(parser.encode(constPing)), Option.isSome(hooks) ? hooks.value : undefined);
-   let currentError;
-   const onOpen = Effect.suspend(() => {
-     currentError = undefined;
-@@ -610,8 +640,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
-           body: () => {
-             const response = responses[i++];
-             if (response._tag === "Pong") {
--              pinger.onPong();
--              return Effect.void;
-+              return pinger.onPong;
-             }
-             if (Object.hasOwn(response, "requestId")) {
-               const requestId = response.requestId;
-@@ -640,12 +669,12 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
-       }
-     }, {
-       onOpen
--    }).pipe(Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
-+    }).pipe(Effect.raceFirst(Effect.flatMap(pinger.timeout, () => (Option.isSome(hooks) && hooks.value.onPingTimeout ? hooks.value.onPingTimeout : Effect.void).pipe(Effect.andThen(Effect.fail(new Socket.SocketError({
-       reason: new Socket.SocketOpenError({
-         kind: "Timeout",
-         cause: new Error("ping timeout")
-       })
--    })))));
-+    })))))));
-   }).pipe(Effect.flatMap(() => Effect.fail(new Socket.SocketError({
-     reason: new Socket.SocketCloseError({
-       code: 1000
-@@ -687,20 +716,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
-   };
- }));
- const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
--const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
-+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) {
-   let recievedPong = true;
-+  let missedPongs = 0;
-   const latch = Latch.makeUnsafe();
-   const reset = () => {
-     recievedPong = true;
-+    missedPongs = 0;
-     latch.closeUnsafe();
-   };
--  const onPong = () => {
--    recievedPong = true;
--  };
-+  const onPong = Effect.sync(() => {
-+    recievedPong = true;
-+    missedPongs = 0;
-+  }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void));
-   yield* Effect.suspend(() => {
--    if (!recievedPong) return latch.open;
--    recievedPong = false;
--    return writePing;
-+    if (!recievedPong) {
-+      missedPongs += 1;
-+      if (missedPongs >= 3) return latch.open;
-+      return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
-+    }
-+    recievedPong = false;
-+    missedPongs = 0;
-+    return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
-   }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
-   return {
-     timeout: latch.await,
-@@ -843,6 +880,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun
-  * @since 4.0.0
-  */
- export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol));
-+/**
-+ * @since 4.0.0
-+ * @category RequestHooks
-+ */
-+export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {}
- /**
-  * Represents optional client protocol hooks that run when a transport connects
-  * and disconnects.
diff --git a/patches/effect@4.0.0-rc.111.patch b/patches/effect@4.0.0-rc.111.patch
new file mode 100644
index 000000000000..c8b16a3c2793
--- /dev/null
+++ b/patches/effect@4.0.0-rc.111.patch
@@ -0,0 +1,76 @@
+diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js
+index d8525be5cc4e5463300abaaec001f5c228130d36..a0a18aa9340966876c96197153faaf78424cddc1 100644
+--- a/dist/unstable/ai/McpServer.js
++++ b/dist/unstable/ai/McpServer.js
+@@ -444,6 +444,31 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options,
+   const defaultLogLevel = yield* CurrentLogLevel;
+   const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
+   const sessions = protocolState.sessions;
++  if (isHttp && options.path !== undefined) {
++    const router = yield* HttpRouter.HttpRouter;
++    yield* router.add("DELETE", options.path, Effect.gen(function* () {
++      const request = yield* HttpServerRequest.HttpServerRequest;
++      if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
++        return HttpServerResponse.empty({
++          status: 403
++        });
++      }
++      const sessionId = request.headers[MCP_SESSION_ID_HEADER];
++      if (sessionId === undefined) {
++        return HttpServerResponse.empty({
++          status: 400
++        });
++      }
++      if (!sessions.bySessionId.delete(sessionId)) {
++        return HttpServerResponse.empty({
++          status: 404
++        });
++      }
++      return HttpServerResponse.empty({
++        status: 204
++      });
++    }));
++  }
+   const clientProtocols = new Map();
+   const activeRequests = new Map();
+   const clientProfiles = new Map();
+@@ -940,7 +965,7 @@ export const layerHttp = options => {
+   const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
+     status: 403
+   }));
+-  const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
++  const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
+   return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
+ };
+ const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
+diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js
+index baa1fec27b45c0a92962078a230f5a56dd13c45e..213bfdb24ddef43e1ae6e595c81823ccc4613b46 100644
+--- a/dist/unstable/rpc/RpcClient.js
++++ b/dist/unstable/rpc/RpcClient.js
+@@ -700,17 +700,25 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
+ const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
+ const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
+   let recievedPong = true;
++  let missedPongs = 0;
+   const latch = Latch.makeUnsafe();
+   const reset = () => {
+     recievedPong = true;
++    missedPongs = 0;
+     latch.closeUnsafe();
+   };
+   const onPong = () => {
+     recievedPong = true;
++    missedPongs = 0;
+   };
+   yield* Effect.suspend(() => {
+-    if (!recievedPong) return latch.open;
++    if (!recievedPong) {
++      missedPongs += 1;
++      if (missedPongs >= 3) return latch.open;
++      return writePing;
++    }
+     recievedPong = false;
++    missedPongs = 0;
+     return writePing;
+   }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
+   return {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0f66f69b87f0..14076154f147 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,8 +7,8 @@ settings:
 catalogs:
   default:
     '@effect/openapi-generator':
-      specifier: 4.0.0-beta.103
-      version: 4.0.0-beta.103
+      specifier: 4.0.0-rc.111
+      version: 4.0.0-rc.111
     '@effect/tsgo':
       specifier: 0.13.2
       version: 0.13.2
@@ -51,29 +51,27 @@ overrides:
   '@clerk/expo': 4.2.0
   '@clerk/react': 6.14.4
   '@clerk/shared': 4.29.2
-  '@effect/atom-react': 4.0.0-beta.103
-  '@effect/platform-bun': 4.0.0-beta.103
-  '@effect/platform-node': 4.0.0-beta.103
-  '@effect/platform-node-shared': 4.0.0-beta.103
-  '@effect/sql-pg': 4.0.0-beta.103
-  '@effect/sql-sqlite-bun': 4.0.0-beta.103
-  '@effect/vitest': 4.0.0-beta.103
-  '@effect/vitest>vitest': '-'
+  '@effect/atom-react': 4.0.0-rc.111
+  '@effect/platform-bun': 4.0.0-rc.111
+  '@effect/platform-node': 4.0.0-rc.111
+  '@effect/platform-node-shared': 4.0.0-rc.111
+  '@effect/sql-pg': 4.0.0-rc.111
+  '@effect/sql-sqlite-bun': 4.0.0-rc.111
+  '@effect/vitest': 4.0.0-rc.111
   '@expo/metro-config': 56.0.14
   '@pierre/diffs>@shikijs/transformers': ^4.2.0
   '@types/node': 24.12.4
-  effect: 4.0.0-beta.103
+  effect: 4.0.0-rc.111
   expo-modules-jsi: 56.0.10
   expo-sharing>@expo/config-plugins: 56.0.9
   expo-sharing>@expo/config-types: 56.0.6
   vite: npm:@voidzero-dev/vite-plus-core@0.2.2
   yaml: ^2.9.0
 
-packageExtensionsChecksum: sha256-CUzzeefpj3gNFrCKNBhV9FOaniNbrLdKyIhWQyXuaiE=
+packageExtensionsChecksum: sha256-bR+v8amlYfegAfBDNOuJZvquRmq0lDomEzolJkgGpRk=
 
 patchedDependencies:
   '@clerk/expo@4.2.0': 72e426f44fc1cde16fc2cbba3d1e96cdca7c6d957faa73d0fe6b43948608a6c1
-  '@effect/vitest@4.0.0-beta.103': a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b
   '@expo/metro-config@56.0.14': 8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46
   '@ff-labs/fff-node@0.9.4': ab9ff544009e1891cfe3930105862d3699007f38922a79f3c98d90018deca368
   '@legendapp/list@3.3.5': 6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5
@@ -81,7 +79,7 @@ patchedDependencies:
   '@react-native-menu/menu@2.0.0': c7f66d121c726ade4f5c4e1aed11a691e5711d244c544084e289ac26132a0045
   '@react-native/gradle-plugin@0.85.3': c1b594a16e682d621b6a960926f8ce13fc92edfb397884cfe7fcb0518996a784
   '@react-navigation/native-stack@7.17.6': 0365b727005b3a830af80ccbd0b637666cc0338d33ddcb7a25b6de51a21ea027
-  effect@4.0.0-beta.103: af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6
+  effect@4.0.0-rc.111: e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03
   expo-modules-jsi@56.0.10: 9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f
   react-native-gesture-handler@2.31.2: 808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3
   react-native-keyboard-controller@1.21.13: 20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008
@@ -115,13 +113,13 @@ importers:
     dependencies:
       '@clerk/electron':
         specifier: 0.0.34
-        version: 0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@clerk/electron-passkeys':
         specifier: 0.0.3
         version: 0.0.3
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@t3tools/client-runtime':
         specifier: workspace:*
         version: link:../../packages/client-runtime
@@ -138,8 +136,8 @@ importers:
         specifier: workspace:*
         version: link:../../packages/tailscale
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       electron:
         specifier: 41.5.0
         version: 41.5.0
@@ -154,11 +152,11 @@ importers:
         version: 1.60.0
       react-grab:
         specifier: ^0.1.32
-        version: 0.1.44(react@19.2.6)
+        version: 0.1.44(react@19.2.8)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -198,25 +196,25 @@ importers:
     dependencies:
       '@callstack/liquid-glass':
         specifier: ^0.7.1
-        version: 0.7.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.7.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@clerk/expo':
         specifier: 4.2.0
-        version: 4.2.0(patch_hash=72e426f44fc1cde16fc2cbba3d1e96cdca7c6d957faa73d0fe6b43948608a6c1)(expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(expo-constants@56.0.18)(expo-crypto@56.0.4(expo@56.0.12))(expo-secure-store@56.0.4(expo@56.0.12))(expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
+        version: 4.2.0(patch_hash=72e426f44fc1cde16fc2cbba3d1e96cdca7c6d957faa73d0fe6b43948608a6c1)(expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(expo-constants@56.0.18)(expo-crypto@56.0.4(expo@56.0.12))(expo-secure-store@56.0.4(expo@56.0.12))(expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
       '@effect/atom-react':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(react@19.2.3)(scheduler@0.27.0)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(react@19.2.8)(scheduler@0.27.0)
       '@expo-google-fonts/dm-sans':
         specifier: ^0.4.2
         version: 0.4.2
       '@expo/metro-runtime':
         specifier: ~56.0.15
-        version: 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@expo/ui':
         specifier: ~56.0.18
-        version: 56.0.18(3cdc0dde9f93166d952f1e1bd0cb25c0)
+        version: 56.0.18(8809ac8ddbfcdc4e2ffacd344f03e232)
       '@legendapp/list':
         specifier: 'catalog:'
-        version: 3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@noble/curves':
         specifier: 'catalog:'
         version: 1.9.1
@@ -225,19 +223,19 @@ importers:
         version: 1.8.0
       '@pierre/diffs':
         specifier: 'catalog:'
-        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@react-native-menu/menu':
         specifier: ^2.0.0
-        version: 2.0.0(patch_hash=c7f66d121c726ade4f5c4e1aed11a691e5711d244c544084e289ac26132a0045)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 2.0.0(patch_hash=c7f66d121c726ade4f5c4e1aed11a691e5711d244c544084e289ac26132a0045)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@react-navigation/elements':
         specifier: 2.9.26
-        version: 2.9.26(c6a2ad0e2c930f8e3896e77c3ba11bc4)
+        version: 2.9.26(d3a33815d1b1cf4cc129fdd2659b9f8d)
       '@react-navigation/native':
         specifier: 7.3.4
-        version: 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@react-navigation/native-stack':
         specifier: 7.17.6
-        version: 7.17.6(patch_hash=0365b727005b3a830af80ccbd0b637666cc0338d33ddcb7a25b6de51a21ea027)(7ffd26361d0ffb9781446d1519df37be)
+        version: 7.17.6(patch_hash=0365b727005b3a830af80ccbd0b637666cc0338d33ddcb7a25b6de51a21ea027)(232652f390be5c9c4c2eeb2e558a88fc)
       '@shikijs/core':
         specifier: 4.2.0
         version: 4.2.0
@@ -258,7 +256,7 @@ importers:
         version: link:../../packages/contracts
       '@t3tools/mobile-markdown-text':
         specifier: file:./modules/t3-markdown-text
-        version: file:apps/mobile/modules/t3-markdown-text(ed3009b8f2424467288a00b38bef28fe)
+        version: file:apps/mobile/modules/t3-markdown-text(9af37707fb01843f8e17dc52481dc4db)
       '@t3tools/mobile-review-diff-native':
         specifier: file:./modules/t3-review-diff
         version: file:apps/mobile/modules/t3-review-diff
@@ -270,7 +268,7 @@ importers:
         version: link:../../packages/shared
       '@tabler/icons-react-native':
         specifier: ^3.44.0
-        version: 3.44.0(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react@19.2.3)
+        version: 3.44.0(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react@19.2.8)
       clsx:
         specifier: ^2.1.1
         version: 2.1.1
@@ -278,68 +276,68 @@ importers:
         specifier: 8.0.3
         version: 8.0.3
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       expo:
         specifier: ~56.0.12
-        version: 56.0.12(8895228379997a2a064f9644cda56ed0)
+        version: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-asset:
         specifier: ~56.0.17
-        version: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
+        version: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
       expo-auth-session:
         specifier: ~56.0.14
-        version: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-blur:
         specifier: ~56.0.3
-        version: 56.0.3(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.3(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-build-properties:
         specifier: ~56.0.19
         version: 56.0.19(expo@56.0.12)
       expo-camera:
         specifier: ~56.0.8
-        version: 56.0.8(@types/emscripten@1.41.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.8(@types/emscripten@1.41.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-clipboard:
         specifier: ~56.0.4
-        version: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-constants:
         specifier: ~56.0.18
-        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-crypto:
         specifier: ~56.0.4
         version: 56.0.4(expo@56.0.12)
       expo-dev-client:
         specifier: ~56.0.20
-        version: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+        version: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-file-system:
         specifier: ~56.0.8
-        version: 56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+        version: 56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-font:
         specifier: ~56.0.7
-        version: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-glass-effect:
         specifier: ~56.0.4
-        version: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-haptics:
         specifier: ~56.0.3
         version: 56.0.3(expo@56.0.12)
       expo-image:
         specifier: ~56.0.11
-        version: 56.0.11(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.11(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-image-picker:
         specifier: ~56.0.18
         version: 56.0.18(expo@56.0.12)
       expo-linking:
         specifier: ~56.0.14
-        version: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-network:
         specifier: ~56.0.5
-        version: 56.0.5(expo@56.0.12)(react@19.2.3)
+        version: 56.0.5(expo@56.0.12)(react@19.2.8)
       expo-notifications:
         specifier: ~56.0.18
-        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
+        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
       expo-paste-input:
         specifier: ^0.1.15
-        version: 0.1.15(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.1.15(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-quick-actions:
         specifier: ^6.0.2
         version: 6.0.2(expo@56.0.12)(typescript@6.0.3)
@@ -348,73 +346,73 @@ importers:
         version: 56.0.4(expo@56.0.12)
       expo-sharing:
         specifier: ~56.0.18
-        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
+        version: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
       expo-splash-screen:
         specifier: ~56.0.10
         version: 56.0.10(expo@56.0.12)(typescript@6.0.3)
       expo-sqlite:
         specifier: ~56.0.5
-        version: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-symbols:
         specifier: ~56.0.6
-        version: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-updates:
         specifier: ~56.0.19
-        version: 56.0.19(expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 56.0.19(expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-web-browser:
         specifier: ~56.0.5
-        version: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+        version: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-widgets:
         specifier: ~56.0.19
-        version: 56.0.19(3cdc0dde9f93166d952f1e1bd0cb25c0)
+        version: 56.0.19(8809ac8ddbfcdc4e2ffacd344f03e232)
       punycode:
         specifier: ^2.3.1
         version: 2.3.1
       react:
-        specifier: 19.2.3
-        version: 19.2.3
+        specifier: 19.2.8
+        version: 19.2.8
       react-dom:
-        specifier: 19.2.3
-        version: 19.2.3(react@19.2.3)
+        specifier: 19.2.8
+        version: 19.2.8(react@19.2.8)
       react-native:
         specifier: 0.85.3
-        version: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+        version: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       react-native-gesture-handler:
         specifier: ~2.31.1
-        version: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-image-viewing:
         specifier: ^0.2.2
-        version: 0.2.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.2.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-keyboard-controller:
         specifier: 1.21.13
-        version: 1.21.13(patch_hash=20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008)(react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 1.21.13(patch_hash=20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008)(react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-nitro-markdown:
         specifier: ^0.5.0
-        version: 0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-nitro-modules:
         specifier: 0.35.9
-        version: 0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-reanimated:
         specifier: 4.3.1
-        version: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-safe-area-context:
         specifier: ~5.7.0
-        version: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-screens:
         specifier: 4.25.2
-        version: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-shiki-engine:
         specifier: ^0.3.12
-        version: 0.3.12(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.3.12(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-svg:
         specifier: 15.15.4
-        version: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-webview:
         specifier: ^13.16.1
-        version: 13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       react-native-worklets:
         specifier: 0.8.3
-        version: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+        version: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       shiki:
         specifier: 4.2.0
         version: 4.2.0
@@ -423,14 +421,14 @@ importers:
         version: 3.6.0
       uniwind:
         specifier: ^1.6.2
-        version: 1.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(tailwindcss@4.3.0)
+        version: 1.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(tailwindcss@4.3.0)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@pierre/trees':
         specifier: 1.0.0-beta.4
-        version: 1.0.0-beta.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+        version: 1.0.0-beta.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@types/react':
         specifier: ~19.2.0
         version: 19.2.16
@@ -450,17 +448,17 @@ importers:
         specifier: ^0.3.170
         version: 0.3.170(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3)
       '@effect/platform-bun':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/platform-node-shared':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
       '@effect/sql-sqlite-bun':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@ff-labs/fff-node':
         specifier: 0.9.4
         version: 0.9.4(patch_hash=ab9ff544009e1891cfe3930105862d3699007f38922a79f3c98d90018deca368)
@@ -469,10 +467,10 @@ importers:
         version: 1.15.13
       '@pierre/diffs':
         specifier: 'catalog:'
-        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       msgpackr-extract:
         specifier: 3.0.4
         version: 3.0.4
@@ -484,8 +482,8 @@ importers:
         version: 2.9.0
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@t3tools/contracts':
         specifier: workspace:*
         version: link:../../packages/contracts
@@ -518,46 +516,46 @@ importers:
     dependencies:
       '@base-ui/react':
         specifier: ^1.4.1
-        version: 1.5.0(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 1.5.0(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@clerk/electron':
         specifier: 0.0.34
-        version: 0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@clerk/react':
         specifier: 6.14.4
-        version: 6.14.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 6.14.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@dnd-kit/core':
         specifier: ^6.3.1
-        version: 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@dnd-kit/modifiers':
         specifier: ^9.0.0
-        version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)
+        version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
       '@dnd-kit/sortable':
         specifier: ^10.0.0
-        version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)
+        version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)
       '@dnd-kit/utilities':
         specifier: ^3.2.2
-        version: 3.2.2(react@19.2.6)
+        version: 3.2.2(react@19.2.8)
       '@effect/atom-react':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(react@19.2.6)(scheduler@0.27.0)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(react@19.2.8)(scheduler@0.27.0)
       '@formkit/auto-animate':
         specifier: ^0.9.0
         version: 0.9.0
       '@legendapp/list':
         specifier: 'catalog:'
-        version: 3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@lexical/react':
         specifier: ^0.41.0
-        version: 0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(yjs@13.6.31)
+        version: 0.41.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(yjs@13.6.31)
       '@noble/hashes':
         specifier: 'catalog:'
         version: 1.8.0
       '@pierre/diffs':
         specifier: 'catalog:'
-        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@pierre/trees':
         specifier: 1.0.0-beta.4
-        version: 1.0.0-beta.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 1.0.0-beta.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@t3tools/client-runtime':
         specifier: workspace:*
         version: link:../../packages/client-runtime
@@ -569,10 +567,10 @@ importers:
         version: link:../../packages/shared
       '@tanstack/react-pacer':
         specifier: ^0.19.4
-        version: 0.19.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 0.19.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@tanstack/react-router':
         specifier: ^1.160.2
-        version: 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 1.170.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       class-variance-authority:
         specifier: ^0.7.1
         version: 0.7.1
@@ -580,8 +578,8 @@ importers:
         specifier: ^4.0.2
         version: 4.0.2
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       jose:
         specifier: 'catalog:'
         version: 6.2.2
@@ -596,16 +594,16 @@ importers:
         version: 0.41.0
       lucide-react:
         specifier: ^0.564.0
-        version: 0.564.0(react@19.2.6)
+        version: 0.564.0(react@19.2.8)
       react:
-        specifier: 19.2.6
-        version: 19.2.6
+        specifier: 19.2.8
+        version: 19.2.8
       react-dom:
-        specifier: 19.2.6
-        version: 19.2.6(react@19.2.6)
+        specifier: 19.2.8
+        version: 19.2.8(react@19.2.8)
       react-markdown:
         specifier: ^10.1.0
-        version: 10.1.0(@types/react@19.2.16)(react@19.2.6)
+        version: 10.1.0(@types/react@19.2.16)(react@19.2.8)
       rehype-raw:
         specifier: ^7.0.0
         version: 7.0.0
@@ -623,14 +621,14 @@ importers:
         version: 3.6.0
       zustand:
         specifier: ^5.0.11
-        version: 5.0.14(@types/react@19.2.16)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
+        version: 5.0.14(@types/react@19.2.16)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8))
     devDependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@rolldown/plugin-babel':
         specifier: ^0.2.0
         version: 0.2.3(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.1.5)
@@ -639,7 +637,7 @@ importers:
         version: 4.3.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))
       '@tanstack/router-plugin':
         specifier: ^1.161.0
-        version: 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))
+        version: 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))
       '@types/babel__core':
         specifier: ^7.20.5
         version: 7.20.5
@@ -684,10 +682,10 @@ importers:
     dependencies:
       '@clerk/backend':
         specifier: 3.14.0
-        version: 3.14.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+        version: 3.14.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@effect/sql-pg':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@noble/curves':
         specifier: 'catalog:'
         version: 1.9.1
@@ -705,23 +703,23 @@ importers:
         version: link:../../packages/shared
       alchemy:
         specifier: 2.0.0-beta.65
-        version: 2.0.0-beta.65(75567d8add6e3362e26fe00f83a97bee)
+        version: 2.0.0-beta.65(208d55979daefb320f74173c6f53ec43)
       drizzle-orm:
         specifier: 1.0.0-rc.4
-        version: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3)
+        version: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-pg@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-sqlite-bun@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3)
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@cloudflare/workers-types':
         specifier: ^4.20260601.1
         version: 4.20260604.1
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -738,18 +736,18 @@ importers:
   oxlint-plugin-t3code:
     dependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@oxlint/plugins':
         specifier: ^1.63.0
         version: 1.68.0
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       vite-plus:
         specifier: 'catalog:'
         version: 0.2.2(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
@@ -763,12 +761,12 @@ importers:
         specifier: workspace:*
         version: link:../shared
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       vite-plus:
         specifier: 'catalog:'
         version: 0.2.2(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
@@ -776,12 +774,12 @@ importers:
   packages/contracts:
     dependencies:
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       vite-plus:
         specifier: 'catalog:'
         version: 0.2.2(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
@@ -789,18 +787,18 @@ importers:
   packages/effect-acp:
     dependencies:
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/openapi-generator':
         specifier: 'catalog:'
-        version: 4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        version: 4.0.0-rc.111(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -811,18 +809,18 @@ importers:
   packages/effect-codex-app-server:
     dependencies:
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/openapi-generator':
         specifier: 'catalog:'
-        version: 4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        version: 4.0.0-rc.111(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -842,8 +840,8 @@ importers:
         specifier: workspace:*
         version: link:../contracts
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       jose:
         specifier: 'catalog:'
         version: 6.2.2
@@ -852,11 +850,11 @@ importers:
         version: 2.9.0
     devDependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -873,15 +871,15 @@ importers:
         specifier: workspace:*
         version: link:../shared
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -892,18 +890,18 @@ importers:
   packages/tailscale:
     dependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@t3tools/shared':
         specifier: workspace:*
         version: link:../shared
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/node':
         specifier: 24.12.4
         version: 24.12.4
@@ -914,8 +912,8 @@ importers:
   scripts:
     dependencies:
       '@effect/platform-node':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
       '@electron/asar':
         specifier: ^3.4.1
         version: 3.4.1
@@ -929,8 +927,8 @@ importers:
         specifier: workspace:*
         version: link:../packages/tailscale
       effect:
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       pngjs:
         specifier: 7.0.0
         version: 7.0.0
@@ -939,8 +937,8 @@ importers:
         version: 2.9.0
     devDependencies:
       '@effect/vitest':
-        specifier: 4.0.0-beta.103
-        version: 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+        specifier: 4.0.0-rc.111
+        version: 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@types/pngjs':
         specifier: 6.0.5
         version: 6.0.5
@@ -1868,12 +1866,12 @@ packages:
   '@distilled.cloud/aws@0.30.2':
     resolution: {integrity: sha512-Uw2yZf7PJ2ienrKG49HN1ajnke65mTtHBUrSb/3ykeZ/8cLaSgwVhPscHxSzGByY0TEtYcYKNNmfUVISgGQl9g==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@distilled.cloud/axiom@0.30.2':
     resolution: {integrity: sha512-6g7tN/fKdMjnZYswlvwmLPeCqa2/jTsuOG7cSyUldhd6akxwWlMYqqDxwiOjgJfBZIOmcqSs5XVwiGMonZQTBw==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@distilled.cloud/cloudflare-rolldown-plugin@0.13.10':
     resolution: {integrity: sha512-UO9wjepZWYupWMf/KYKY7LUueHNawdp0qBGc9z3XYxjodrQaMwFQWtIGG1yWOHjTWl1BUx86A69hyB8kHYRAeA==}
@@ -1890,9 +1888,9 @@ packages:
     resolution: {integrity: sha512-0mtI2rmxKiRcuZVXsQZfPnHWstUTCyPlg4q6EbxdImfiB4CCL2F56orGl9UhuBy+BPgO37wDgMe2GIpAHIUNWA==}
     peerDependencies:
       '@distilled.cloud/cloudflare': ^0.29.0
-      '@effect/platform-bun': 4.0.0-beta.103
-      '@effect/platform-node': 4.0.0-beta.103
-      effect: 4.0.0-beta.103
+      '@effect/platform-bun': 4.0.0-rc.111
+      '@effect/platform-node': 4.0.0-rc.111
+      effect: 4.0.0-rc.111
     peerDependenciesMeta:
       '@effect/platform-bun':
         optional: true
@@ -1904,9 +1902,9 @@ packages:
     peerDependencies:
       '@distilled.cloud/cloudflare': ^0.29.0
       '@distilled.cloud/cloudflare-runtime': 0.13.10
-      '@effect/platform-bun': 4.0.0-beta.103
-      '@effect/platform-node': 4.0.0-beta.103
-      effect: 4.0.0-beta.103
+      '@effect/platform-bun': 4.0.0-rc.111
+      '@effect/platform-node': 4.0.0-rc.111
+      effect: 4.0.0-rc.111
       vite: ^7.0.0 || ^8.0.0
     peerDependenciesMeta:
       '@effect/platform-bun':
@@ -1917,22 +1915,22 @@ packages:
   '@distilled.cloud/cloudflare@0.30.2':
     resolution: {integrity: sha512-bY0WAXL7Xw1mbo9twdXcaSCKL1rMi1o4aDzVwhnHASxe416oWvDARUo2/DPhQqN48r3q9BY2AyRAxRf65X6z0g==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@distilled.cloud/core@0.30.2':
     resolution: {integrity: sha512-7wurt9mk2Z3h0zJ00FAXD9ApSLoiBdjArctc9k706JPwzo6uhSJNkTwVMFdYM6V3m5186cY5C8ukzstrCRkJSw==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@distilled.cloud/neon@0.30.2':
     resolution: {integrity: sha512-mFNmN4sUGIa7WukCSmU1KQSDZKmByjGY5Neh05IiM4b38UaJ80zYws0ZKLVsM3NNpypwnwcibYv3RwXxfG4f/Q==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@distilled.cloud/planetscale@0.30.2':
     resolution: {integrity: sha512-Ph4lY6Ds8xC0l8ZDaEsX4E5oPCHqnDHb3RYKbOPeO8fjaXdZHWxn24gxCWpzSU+fVnkmdKy9ntflqxK2l+12rQ==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@dnd-kit/accessibility@3.1.1':
     resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
@@ -1965,52 +1963,52 @@ packages:
   '@drizzle-team/brocli@0.12.0':
     resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}
 
-  '@effect/atom-react@4.0.0-beta.103':
-    resolution: {integrity: sha512-1HJ+Cyq4ssLnH2UZ8OVnhtMGAySabtzZo7imKC+vEfxOW3lvJYpGZeicxQX5Ii/7AdvlR+19p/6K2a5IPKYAow==}
+  '@effect/atom-react@4.0.0-rc.111':
+    resolution: {integrity: sha512-MQgX2+ayms/J686g19vV2AkLSocMaubZmFf2VFrWN3fwPg60XXsaPtlQKdcsIy/McxVGZYgYUPXBVVtcmUjjSA==}
     peerDependencies:
-      effect: 4.0.0-beta.103
-      react: ^19.2.4
-      scheduler: '*'
+      effect: 4.0.0-rc.111
+      react: '>=19.2.7 <20.0.0'
+      scheduler: '>=0.27.0 <0.28.0'
 
-  '@effect/openapi-generator@4.0.0-beta.103':
-    resolution: {integrity: sha512-wWp3n0w9g7edprSue5xLB68Lu3PNdeW1n8girDmV2RKdmVKgrvY0+iIyzYqEMhVGOxc7P0g/ZtMWzaAnJAxbBA==}
+  '@effect/openapi-generator@4.0.0-rc.111':
+    resolution: {integrity: sha512-UymC1ocdIonbP6BVazKT/4eceE/4mAeTKGC6V/PP2LD4M9M/zAsPzEYgnck//n2qINrVuYOBCxvvAO1g+euCQg==}
     hasBin: true
     peerDependencies:
-      '@effect/platform-node': 4.0.0-beta.103
-      effect: 4.0.0-beta.103
+      '@effect/platform-node': 4.0.0-rc.111
+      effect: 4.0.0-rc.111
 
-  '@effect/platform-bun@4.0.0-beta.103':
-    resolution: {integrity: sha512-/ay1/lhE9FUKEiDRQs56463eJ9u9ivtUtOCi2eeqI8Aooau7PupKNtV5zKjoRBCLInZMAX7JezT46NW5AdACBQ==}
+  '@effect/platform-bun@4.0.0-rc.111':
+    resolution: {integrity: sha512-z6MF1ztw8oSvh4nlvI90wraB63ib5K67JPaSYtz5K9IIAgjXgXYC0hjbcqF+PlC9ytlQmu8tWzk2+yGePWWe5A==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
-  '@effect/platform-node-shared@4.0.0-beta.103':
-    resolution: {integrity: sha512-0aCZMBid5ifqmY55TkfCDLaGTIM8qu3bNFUW7qL9vh/7jFOkaIAMX2MA8muG4deqW17XWxawddWu4v0fK+UW3g==}
+  '@effect/platform-node-shared@4.0.0-rc.111':
+    resolution: {integrity: sha512-iES0Q9vmjhaUKqeW9ceonuD45MUg/Ouk08LzRSptZ+B5qB0w9WlRjDmUz5TJmY2betNop5FRI5k4AD4mtQt3Bw==}
     engines: {node: '>=18.0.0'}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
-  '@effect/platform-node@4.0.0-beta.103':
-    resolution: {integrity: sha512-VD8fbpendwFokMwzC7/MxazjhEVDihPC5NZtomYEyZwGaA1LXMvwP1y8pfXwfshUkG56TN4EMQqzu72c0B9FhA==}
+  '@effect/platform-node@4.0.0-rc.111':
+    resolution: {integrity: sha512-oy1i7HsOGg/5r+DuBe5+ddmnUhnXmyZFPFPXZCBdO/RQpHK3PIFe1/2UMGxZE+ngDymrSksuQTSgQLF6P+MLqw==}
     engines: {node: '>=18.0.0'}
     peerDependencies:
-      effect: 4.0.0-beta.103
-      ioredis: ^5.7.0
+      effect: 4.0.0-rc.111
+      redis: '>=5.0.0 <7.0.0'
 
   '@effect/sql-d1@4.0.0-beta.101':
     resolution: {integrity: sha512-4M/2lm7y1M1Fg1fCc31BTtU3p8lK0jHUlPGqIiJ97pOSXZJrlv21087VVLbJ/1i4svuSUshnShDsce9ZwZKsOQ==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
-  '@effect/sql-pg@4.0.0-beta.103':
-    resolution: {integrity: sha512-jzlTFtFaaoOmT87rQMKUBhkFeIQQwDKtlB+MOYn1jIPssLvXZVnMqo9GahCjsNcXVlB6QGBkUgD1HCA6+tJvBw==}
+  '@effect/sql-pg@4.0.0-rc.111':
+    resolution: {integrity: sha512-QjYFyN5cUlJGJWzXA8GHh7BJydc2K8ImIFvG3kf8f/Nv3w6ZuycuRKIW3TUNtOmHtVvqr/OugPFtyvHYhkDEbg==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
-  '@effect/sql-sqlite-bun@4.0.0-beta.103':
-    resolution: {integrity: sha512-u10I6SEWgUc1sKrlT0luxOBNzlUXunzxCChrD75pK5khIN1baKlPn2DD3f7bkh20NxwSzOfxF3hWsrO4VktvNg==}
+  '@effect/sql-sqlite-bun@4.0.0-rc.111':
+    resolution: {integrity: sha512-u5HqWLYISTH5ydsCr45nOGmkspmAeNzK4q+plMrJntDoG8sQttwizC4akGfbQDgoSxyYfyBzi3YyVW/NvhvSQQ==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
 
   '@effect/tsgo-darwin-arm64@0.13.2':
     resolution: {integrity: sha512-AlYlxU2sD3urNCmNCQWtatPJS/+m2r3CvgZdDTs9KEz2YcyQc2GV1g2RWFkoMwmgzYBx69DBLu1oscqJO2qAog==}
@@ -2051,10 +2049,11 @@ packages:
     resolution: {integrity: sha512-zPQMHBdCN1k7Jbxjxq0HVAbzsZd+LAoRPzBEZ3F4y/uxNK0K/XGvFXUUw/CUAsD6rhUtC2VahZY1tp0owb5lgg==}
     hasBin: true
 
-  '@effect/vitest@4.0.0-beta.103':
-    resolution: {integrity: sha512-Kz3gemVuJNAZ3e4V6A7BwAP87x2Av8LyHOlCjy9jbZzlncwJXO7Olk1Sje3hdKaet3wEl51A/0/89xJ2IYSgNg==}
+  '@effect/vitest@4.0.0-rc.111':
+    resolution: {integrity: sha512-YDaEVT+grREBVMzykRNFtJwGxy02achzT0WXZYwMJA4ukzuB9krkgQ5roc3N6zhC3NQq/j4IyM32/Pcov7AhHw==}
     peerDependencies:
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
+      vitest: '>=4.1.0 <5.0.0'
 
   '@egjs/hammerjs@2.0.17':
     resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==}
@@ -3304,6 +3303,9 @@ packages:
   '@oxc-project/types@0.139.0':
     resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==}
 
+  '@oxc-project/types@0.144.0':
+    resolution: {integrity: sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg==}
+
   '@oxfmt/binding-android-arm-eabi@0.57.0':
     resolution: {integrity: sha512-qVBsEO+KugOsCmUHcO8iqNnqc65p7PCKpCs8M66mPZ+Ri+CWbcpoQOEJBg2OTu03+0qu++NK1jj6IzvQVs0Sig==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -3993,6 +3995,42 @@ packages:
   '@react-navigation/routers@7.6.0':
     resolution: {integrity: sha512-lblhDXfS75jLc7G2K7BZGM+7cjqQXk13X/MA4fq/12r62zM+fBhhreLzYflSitrDDXFRJpSvJXy0ziiGU04Xow==}
 
+  '@redis/bloom@6.2.1':
+    resolution: {integrity: sha512-huQgNLaCIZfQ9SeLn4q9124uOUd8HbZDYHwwUzNcRgHqCHiHKl2dDxMqJCeWh8cMqZAoWuHR8XnWbDMIf+o7ag==}
+    engines: {node: '>= 20.0.0'}
+    peerDependencies:
+      '@redis/client': ^6.2.1
+
+  '@redis/client@6.2.1':
+    resolution: {integrity: sha512-LzxBY7SIBvvJiyCgcaJZZakE3fJrZZ++i24+EDW9fKpCl68D35uJcKFpZZwCfOoG9WZTbyZlMzMeM0gtOAMU9Q==}
+    engines: {node: '>= 20.0.0'}
+    peerDependencies:
+      '@node-rs/xxhash': ^1.1.0
+      '@opentelemetry/api': '>=1 <2'
+    peerDependenciesMeta:
+      '@node-rs/xxhash':
+        optional: true
+      '@opentelemetry/api':
+        optional: true
+
+  '@redis/json@6.2.1':
+    resolution: {integrity: sha512-AFIUJ8Gj0DaaSBHYuSt8+O0oYWM+50OK1c0OmodB7XERIA8+BbyV3O4v76f9iccWasd1/7qjfZTpuzexUaZtrQ==}
+    engines: {node: '>= 20.0.0'}
+    peerDependencies:
+      '@redis/client': ^6.2.1
+
+  '@redis/search@6.2.1':
+    resolution: {integrity: sha512-2vfOAOyYFE7UUw3sBBlkqqruBtOUS4HRY5MtW4hp83llrwvtrTE4r22CEqXddlV+54zkLxBE4nmsIJ/dpezQrQ==}
+    engines: {node: '>= 20.0.0'}
+    peerDependencies:
+      '@redis/client': ^6.2.1
+
+  '@redis/time-series@6.2.1':
+    resolution: {integrity: sha512-kiYniph04dJOole+L359B6C9E+jYS2uDP7hca6Onj0xF38ZIpyxARO0Iq0W4ZRn1e8Q6vqW00QFZVSMRA/2Ijw==}
+    engines: {node: '>= 20.0.0'}
+    peerDependencies:
+      '@redis/client': ^6.2.1
+
   '@rolldown/binding-android-arm64@1.0.0-rc.17':
     resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4005,6 +4043,12 @@ packages:
     cpu: [arm64]
     os: [android]
 
+  '@rolldown/binding-android-arm64@1.2.4':
+    resolution: {integrity: sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [android]
+
   '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
     resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4017,6 +4061,12 @@ packages:
     cpu: [arm64]
     os: [darwin]
 
+  '@rolldown/binding-darwin-arm64@1.2.4':
+    resolution: {integrity: sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [darwin]
+
   '@rolldown/binding-darwin-x64@1.0.0-rc.17':
     resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4029,6 +4079,12 @@ packages:
     cpu: [x64]
     os: [darwin]
 
+  '@rolldown/binding-darwin-x64@1.2.4':
+    resolution: {integrity: sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [x64]
+    os: [darwin]
+
   '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
     resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4041,6 +4097,12 @@ packages:
     cpu: [x64]
     os: [freebsd]
 
+  '@rolldown/binding-freebsd-x64@1.2.4':
+    resolution: {integrity: sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [x64]
+    os: [freebsd]
+
   '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
     resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4053,6 +4115,12 @@ packages:
     cpu: [arm]
     os: [linux]
 
+  '@rolldown/binding-linux-arm-gnueabihf@1.2.4':
+    resolution: {integrity: sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm]
+    os: [linux]
+
   '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
     resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4067,6 +4135,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  '@rolldown/binding-linux-arm64-gnu@1.2.4':
+    resolution: {integrity: sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [linux]
+    libc: [glibc]
+
   '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
     resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4081,6 +4156,13 @@ packages:
     os: [linux]
     libc: [musl]
 
+  '@rolldown/binding-linux-arm64-musl@1.2.4':
+    resolution: {integrity: sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [linux]
+    libc: [musl]
+
   '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
     resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4095,6 +4177,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  '@rolldown/binding-linux-ppc64-gnu@1.2.4':
+    resolution: {integrity: sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [ppc64]
+    os: [linux]
+    libc: [glibc]
+
   '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
     resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4109,6 +4198,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  '@rolldown/binding-linux-s390x-gnu@1.2.4':
+    resolution: {integrity: sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [s390x]
+    os: [linux]
+    libc: [glibc]
+
   '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
     resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4123,6 +4219,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  '@rolldown/binding-linux-x64-gnu@1.2.4':
+    resolution: {integrity: sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [x64]
+    os: [linux]
+    libc: [glibc]
+
   '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
     resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4137,6 +4240,13 @@ packages:
     os: [linux]
     libc: [musl]
 
+  '@rolldown/binding-linux-x64-musl@1.2.4':
+    resolution: {integrity: sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [x64]
+    os: [linux]
+    libc: [musl]
+
   '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
     resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4149,6 +4259,12 @@ packages:
     cpu: [arm64]
     os: [openharmony]
 
+  '@rolldown/binding-openharmony-arm64@1.2.4':
+    resolution: {integrity: sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [openharmony]
+
   '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
     resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4171,6 +4287,12 @@ packages:
     cpu: [arm64]
     os: [win32]
 
+  '@rolldown/binding-win32-arm64-msvc@1.2.4':
+    resolution: {integrity: sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [arm64]
+    os: [win32]
+
   '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
     resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==}
     engines: {node: ^20.19.0 || >=22.12.0}
@@ -4183,6 +4305,12 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@rolldown/binding-win32-x64-msvc@1.2.4':
+    resolution: {integrity: sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    cpu: [x64]
+    os: [win32]
+
   '@rolldown/plugin-babel@0.2.3':
     resolution: {integrity: sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw==}
     engines: {node: '>=22.12.0 || ^24.0.0'}
@@ -5184,10 +5312,12 @@ packages:
   '@xmldom/xmldom@0.8.13':
     resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==}
     engines: {node: '>=10.0.0'}
+    deprecated: this version has critical issues, please update to the latest version
 
   '@xmldom/xmldom@0.9.10':
     resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==}
     engines: {node: '>=14.6'}
+    deprecated: this version has critical issues, please update to the latest version
 
   '@yuuang/ffi-rs-android-arm64@1.3.2':
     resolution: {integrity: sha512-eDYLT0kVBkp7e2BwdRDmt6N1rkeDPUHDefk3ZX0/nok+GLsqfy1WBoSL3Yg7HVXN1EyW8OBVc2uK8Zq8HbmaSA==}
@@ -5334,12 +5464,12 @@ packages:
     hasBin: true
     peerDependencies:
       '@aws/durable-execution-sdk-js': ^2.1.0
-      '@effect/platform-bun': 4.0.0-beta.103
-      '@effect/platform-node': 4.0.0-beta.103
-      '@effect/sql-pg': 4.0.0-beta.103
+      '@effect/platform-bun': 4.0.0-rc.111
+      '@effect/platform-node': 4.0.0-rc.111
+      '@effect/sql-pg': 4.0.0-rc.111
       drizzle-kit: 1.0.0-rc.4
       drizzle-orm: 1.0.0-rc.4
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
       vite: ^8.0.7
       ws: ^8.20.0
     peerDependenciesMeta:
@@ -5848,6 +5978,10 @@ packages:
     resolution: {integrity: sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==}
     engines: {node: '>=0.10.0'}
 
+  cluster-key-slot@1.1.2:
+    resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
+    engines: {node: '>=0.10.0'}
+
   code-excerpt@4.0.0:
     resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -6200,9 +6334,9 @@ packages:
       '@effect/sql-d1': '>=4.0.0-beta.83 || >=4.0.0'
       '@effect/sql-libsql': '>=4.0.0-beta.83 || >=4.0.0'
       '@effect/sql-mysql2': '>=4.0.0-beta.83 || >=4.0.0'
-      '@effect/sql-pg': 4.0.0-beta.103
+      '@effect/sql-pg': 4.0.0-rc.111
       '@effect/sql-pglite': '>=4.0.0-beta.83 || >=4.0.0'
-      '@effect/sql-sqlite-bun': 4.0.0-beta.103
+      '@effect/sql-sqlite-bun': 4.0.0-rc.111
       '@effect/sql-sqlite-do': '>=4.0.0-beta.83 || >=4.0.0'
       '@effect/sql-sqlite-node': '>=4.0.0-beta.83 || >=4.0.0'
       '@effect/sql-sqlite-wasm': '>=4.0.0-beta.83 || >=4.0.0'
@@ -6231,7 +6365,7 @@ packages:
       arktype: '>=2.0.0'
       better-sqlite3: '>=9.3.0'
       bun-types: '*'
-      effect: 4.0.0-beta.103
+      effect: 4.0.0-rc.111
       expo-sqlite: '>=14.0.0'
       mssql: ^11.0.1
       mysql2: '>=2'
@@ -6352,8 +6486,8 @@ packages:
   ee-first@1.1.1:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
 
-  effect@4.0.0-beta.103:
-    resolution: {integrity: sha512-pE8TxF4m2tQzVI+77dIlm3s+81TACV1AiX1JEkvY+zVuxgQQ8aGSkqXNJF6b/ST+coCSk5cUdbULpQ7sm4oHyw==}
+  effect@4.0.0-rc.111:
+    resolution: {integrity: sha512-ASd5L58EIR0CUNueZNKKjSsyOCd+2alxOAIaTcHaqkJkPsaYSsw5Cg/cfANk5K4Jr2YsX756xvX11shzqsreWA==}
 
   ejs@3.1.10:
     resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
@@ -6962,9 +7096,6 @@ packages:
     resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
     engines: {node: '>= 18.0.0'}
 
-  find-my-way-ts@0.1.6:
-    resolution: {integrity: sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==}
-
   find-up@3.0.0:
     resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
     engines: {node: '>=6'}
@@ -7284,10 +7415,6 @@ packages:
   inherits@2.0.4:
     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
 
-  ini@7.0.0:
-    resolution: {integrity: sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==}
-    engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0}
-
   ink@6.8.0:
     resolution: {integrity: sha512-sbl1RdLOgkO9isK42WCZlJCFN9hb++sX9dsklOvfd1YQ3bQ2AiFu12Q6tFlr0HvEUvzraJntQCCpfEoUe9DSzA==}
     engines: {node: '>=20'}
@@ -7563,9 +7690,6 @@ packages:
     resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
     engines: {node: '>=6'}
 
-  kubernetes-types@1.30.0:
-    resolution: {integrity: sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==}
-
   lan-network@0.2.1:
     resolution: {integrity: sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A==}
     hasBin: true
@@ -7614,6 +7738,12 @@ packages:
     cpu: [arm64]
     os: [android]
 
+  lightningcss-android-arm64@1.33.0:
+    resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [android]
+
   lightningcss-darwin-arm64@1.30.1:
     resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
     engines: {node: '>= 12.0.0'}
@@ -7632,6 +7762,12 @@ packages:
     cpu: [arm64]
     os: [darwin]
 
+  lightningcss-darwin-arm64@1.33.0:
+    resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [darwin]
+
   lightningcss-darwin-x64@1.30.1:
     resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
     engines: {node: '>= 12.0.0'}
@@ -7650,6 +7786,12 @@ packages:
     cpu: [x64]
     os: [darwin]
 
+  lightningcss-darwin-x64@1.33.0:
+    resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [darwin]
+
   lightningcss-freebsd-x64@1.30.1:
     resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
     engines: {node: '>= 12.0.0'}
@@ -7668,6 +7810,12 @@ packages:
     cpu: [x64]
     os: [freebsd]
 
+  lightningcss-freebsd-x64@1.33.0:
+    resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [freebsd]
+
   lightningcss-linux-arm-gnueabihf@1.30.1:
     resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==}
     engines: {node: '>= 12.0.0'}
@@ -7686,6 +7834,12 @@ packages:
     cpu: [arm]
     os: [linux]
 
+  lightningcss-linux-arm-gnueabihf@1.33.0:
+    resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm]
+    os: [linux]
+
   lightningcss-linux-arm64-gnu@1.30.1:
     resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
     engines: {node: '>= 12.0.0'}
@@ -7707,6 +7861,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  lightningcss-linux-arm64-gnu@1.33.0:
+    resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [linux]
+    libc: [glibc]
+
   lightningcss-linux-arm64-musl@1.30.1:
     resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
     engines: {node: '>= 12.0.0'}
@@ -7728,6 +7889,13 @@ packages:
     os: [linux]
     libc: [musl]
 
+  lightningcss-linux-arm64-musl@1.33.0:
+    resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [linux]
+    libc: [musl]
+
   lightningcss-linux-x64-gnu@1.30.1:
     resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
     engines: {node: '>= 12.0.0'}
@@ -7749,6 +7917,13 @@ packages:
     os: [linux]
     libc: [glibc]
 
+  lightningcss-linux-x64-gnu@1.33.0:
+    resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [linux]
+    libc: [glibc]
+
   lightningcss-linux-x64-musl@1.30.1:
     resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
     engines: {node: '>= 12.0.0'}
@@ -7770,6 +7945,13 @@ packages:
     os: [linux]
     libc: [musl]
 
+  lightningcss-linux-x64-musl@1.33.0:
+    resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [linux]
+    libc: [musl]
+
   lightningcss-win32-arm64-msvc@1.30.1:
     resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
     engines: {node: '>= 12.0.0'}
@@ -7788,6 +7970,12 @@ packages:
     cpu: [arm64]
     os: [win32]
 
+  lightningcss-win32-arm64-msvc@1.33.0:
+    resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [win32]
+
   lightningcss-win32-x64-msvc@1.30.1:
     resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==}
     engines: {node: '>= 12.0.0'}
@@ -7806,6 +7994,12 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  lightningcss-win32-x64-msvc@1.33.0:
+    resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [win32]
+
   lightningcss@1.30.1:
     resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
     engines: {node: '>= 12.0.0'}
@@ -7818,6 +8012,10 @@ packages:
     resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
     engines: {node: '>= 12.0.0'}
 
+  lightningcss@1.33.0:
+    resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
+    engines: {node: '>= 12.0.0'}
+
   locate-path@3.0.0:
     resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
     engines: {node: '>=6'}
@@ -8278,8 +8476,8 @@ packages:
     resolution: {integrity: sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==}
     hasBin: true
 
-  msgpackr@2.0.4:
-    resolution: {integrity: sha512-o1C5KRmuRt+apqMr1HuGSqWStZoRBUpEsCsl15uM9VdAF1qHLtvMOU2En747EnTyEl6c4pzPewRMFF31s1CNbA==}
+  msgpackr@2.0.5:
+    resolution: {integrity: sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA==}
 
   msw@2.12.11:
     resolution: {integrity: sha512-dVg20zi2I2EvnwH/+WupzsOC2mCa7qsIhyMAWtfRikn6RKtwL9+7SaF1IQ5LyZry4tlUtf6KyTVhnlQiZXozTQ==}
@@ -8294,9 +8492,6 @@ packages:
   muggle-string@0.4.1:
     resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
 
-  multipasta@0.2.8:
-    resolution: {integrity: sha512-ZPWuMKyv0cSO29f7hozp+k6+crZbQijV8ipMvxNxRf2SwtYGTX1ZX89Kd20VV4H9Znonx+EQn+iy1wGQsJ+b+Q==}
-
   multitars@1.0.0:
     resolution: {integrity: sha512-H/J4fMLedtudftaYMOg7ajzLYgT3/rwbWVJbqr/iUgB8DQztn38ys5HOqI1CzSxx8QhXXwOOnnBvd4v3jG5+Mg==}
 
@@ -8319,6 +8514,11 @@ packages:
     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
     hasBin: true
 
+  nanoid@3.3.18:
+    resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+
   negotiator@0.6.3:
     resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
     engines: {node: '>= 0.6'}
@@ -8653,8 +8853,8 @@ packages:
   pg-connection-string@2.14.0:
     resolution: {integrity: sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==}
 
-  pg-cursor@2.21.0:
-    resolution: {integrity: sha512-IYvk/j+Suhtbo/C3uOf4JLsLK/gWxOTUOmYbDsbKnLaVJDq+KwhwK6ngpRfiCk8eDMS3AmGQABZCv0cREEzHQw==}
+  pg-cursor@2.22.0:
+    resolution: {integrity: sha512-knzXLKqarTjOvb3qDSW0JiGsazmxwEKXrqHfWRte7XUsOYccQRafn3BLnQobWwInkzFJSyOej8y8cQRh2z3kGw==}
     peerDependencies:
       pg: ^8
 
@@ -8674,8 +8874,8 @@ packages:
   pg-protocol@1.14.0:
     resolution: {integrity: sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA==}
 
-  pg-protocol@1.15.0:
-    resolution: {integrity: sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ==}
+  pg-protocol@1.16.0:
+    resolution: {integrity: sha512-sILXutLVjCLjcDuOmvhX5e2Z4cS5qG/6Bu3VkpFwdf/633ElGLpEh9bgmuI5I4sqKqkifQiGyiCcx1HdtrK7tg==}
 
   pg-types@2.2.0:
     resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
@@ -8694,8 +8894,8 @@ packages:
       pg-native:
         optional: true
 
-  pg@8.22.0:
-    resolution: {integrity: sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==}
+  pg@8.23.0:
+    resolution: {integrity: sha512-Ip2EQCngowJLGOfCwkFhPXU7/ljlhn6Rxlmy4XYfL2Y+vyRM59+8uR2xqRWKdYmbXmxCFOAmKxBuSUCdF34qLg==}
     engines: {node: '>= 16.0.0'}
     peerDependencies:
       pg-native: '>=3.0.1'
@@ -8720,6 +8920,10 @@ packages:
     resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
     engines: {node: '>=12'}
 
+  picomatch@4.0.5:
+    resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
+    engines: {node: '>=12'}
+
   pkce-challenge@5.0.1:
     resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==}
     engines: {node: '>=16.20.0'}
@@ -8757,6 +8961,10 @@ packages:
     resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
     engines: {node: ^10 || ^12 || >=14}
 
+  postcss@8.5.26:
+    resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
+    engines: {node: ^10 || ^12 || >=14}
+
   postgres-array@2.0.0:
     resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
     engines: {node: '>=4'}
@@ -8918,15 +9126,10 @@ packages:
   react-devtools-core@6.1.5:
     resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==}
 
-  react-dom@19.2.3:
-    resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==}
+  react-dom@19.2.8:
+    resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==}
     peerDependencies:
-      react: ^19.2.3
-
-  react-dom@19.2.6:
-    resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==}
-    peerDependencies:
-      react: ^19.2.6
+      react: ^19.2.8
 
   react-error-boundary@6.1.2:
     resolution: {integrity: sha512-3DpCr5HVdZ0caUjYE/kIHBEJN0mNP3ZCgf16c48uJ5TbWjorKVp+YG8W3XqlJ7vJAVNw6wNIImyPXmFydwmyng==}
@@ -9126,12 +9329,8 @@ packages:
       '@types/react':
         optional: true
 
-  react@19.2.3:
-    resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
-    engines: {node: '>=0.10.0'}
-
-  react@19.2.6:
-    resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==}
+  react@19.2.8:
+    resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==}
     engines: {node: '>=0.10.0'}
 
   read-binary-file-arch@1.0.6:
@@ -9161,6 +9360,10 @@ packages:
     resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
     engines: {node: '>=4'}
 
+  redis@6.2.1:
+    resolution: {integrity: sha512-Z9VHtgYs48PiQC77X9O2Er8Hj4T+5BtFjT91/vi5Is1D04N72cA946ZslM1ImJw8ZctFBZWAVjM7S5wJNeHMpg==}
+    engines: {node: '>= 20.0.0'}
+
   reftools@1.1.9:
     resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==}
 
@@ -9324,6 +9527,11 @@ packages:
     engines: {node: ^20.19.0 || >=22.12.0}
     hasBin: true
 
+  rolldown@1.2.4:
+    resolution: {integrity: sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    hasBin: true
+
   rollup@4.61.0:
     resolution: {integrity: sha512-T9mWdbWfQtp0B5lv/HX+wrhYsmXRlcWnXXmJbXqKJhlRaoS6KMhq0gpyzW4UJfclcxrEdLnTgjT2NjruLONu0g==}
     engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -9805,10 +10013,6 @@ packages:
     resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
     engines: {node: '>=0.6'}
 
-  toml@4.3.0:
-    resolution: {integrity: sha512-lVb8X9BsPVuH0M4BKeS91tXAmJvCjQ5UIyAbQFaxkKGyUFK2RPkhwaFSQH8vbpl1d23eu/IBH+dwVMHWaq9A5A==}
-    engines: {node: '>=20'}
-
   toqr@0.1.1:
     resolution: {integrity: sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA==}
 
@@ -9897,8 +10101,8 @@ packages:
     resolution: {integrity: sha512-UDdpiex+mzigiyrXrGbiUaF4HzTNhKbh2vRNFaTMzcqmLIPrZxaCtwo/1TMSuWoM1Xz3WiTo9KdgI3kRqYzJGg==}
     engines: {node: '>=20.18.1'}
 
-  undici@8.9.0:
-    resolution: {integrity: sha512-aWZpUj7XoGonMClx4gdDRfgBjqeA+F473aDmROQQbM9n6PRfK/u1q/a0X4wMTgcHfT8H6fpbt98PFuDUwFg2YA==}
+  undici@8.10.0:
+    resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==}
     engines: {node: '>=22.19.0'}
 
   unenv@2.0.0-rc.24:
@@ -10110,10 +10314,6 @@ packages:
     resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
     engines: {node: '>= 0.4.0'}
 
-  uuid@14.0.1:
-    resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==}
-    hasBin: true
-
   uuid@7.0.3:
     resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==}
     deprecated: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
@@ -10155,6 +10355,49 @@ packages:
       '@vitest/browser-webdriverio':
         optional: true
 
+  vite@8.2.2:
+    resolution: {integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==}
+    engines: {node: ^20.19.0 || >=22.12.0}
+    hasBin: true
+    peerDependencies:
+      '@types/node': 24.12.4
+      '@vitejs/devtools': ^0.4.0 || ^0.5.0
+      esbuild: ^0.27.0 || ^0.28.0
+      jiti: '>=1.21.0'
+      less: ^4.0.0
+      sass: ^1.70.0
+      sass-embedded: ^1.70.0
+      stylus: '>=0.54.8'
+      sugarss: ^5.0.0
+      terser: ^5.16.0
+      tsx: ^4.8.1
+      yaml: ^2.9.0
+    peerDependenciesMeta:
+      '@types/node':
+        optional: true
+      '@vitejs/devtools':
+        optional: true
+      esbuild:
+        optional: true
+      jiti:
+        optional: true
+      less:
+        optional: true
+      sass:
+        optional: true
+      sass-embedded:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      terser:
+        optional: true
+      tsx:
+        optional: true
+      yaml:
+        optional: true
+
   vitefu@1.1.3:
     resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==}
     peerDependencies:
@@ -10409,6 +10652,18 @@ packages:
       utf-8-validate:
         optional: true
 
+  ws@8.21.3:
+    resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==}
+    engines: {node: '>=10.0.0'}
+    peerDependencies:
+      bufferutil: ^4.0.1
+      utf-8-validate: '>=5.0.2'
+    peerDependenciesMeta:
+      bufferutil:
+        optional: true
+      utf-8-validate:
+        optional: true
+
   xcode@3.0.1:
     resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==}
     engines: {node: '>=10.0.0'}
@@ -10663,7 +10918,7 @@ snapshots:
       '@types/hast': 3.0.4
       '@types/mdast': 4.0.4
       js-yaml: 4.2.0
-      picomatch: 4.0.4
+      picomatch: 4.0.5
       retext-smartypants: 6.2.0
       shiki: 4.2.0
       smol-toml: 1.7.0
@@ -11449,26 +11704,26 @@ snapshots:
       '@babel/helper-string-parser': 7.29.7
       '@babel/helper-validator-identifier': 7.29.7
 
-  '@base-ui/react@1.5.0(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@base-ui/react@1.5.0(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@babel/runtime': 7.29.7
-      '@base-ui/utils': 0.2.9(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@floating-ui/react-dom': 2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@base-ui/utils': 0.2.9(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@floating-ui/utils': 0.2.11
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-      use-sync-external-store: 1.6.0(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
+      use-sync-external-store: 1.6.0(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@base-ui/utils@0.2.9(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@base-ui/utils@0.2.9(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@babel/runtime': 7.29.7
       '@floating-ui/utils': 0.2.11
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       reselect: 5.2.0
-      use-sync-external-store: 1.6.0(react@19.2.6)
+      use-sync-external-store: 1.6.0(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
 
@@ -11505,10 +11760,10 @@ snapshots:
   '@bruits/satteri-win32-x64-msvc@0.9.3':
     optional: true
 
-  '@callstack/liquid-glass@0.7.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@callstack/liquid-glass@0.7.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   '@capsizecss/unpack@4.0.1':
     dependencies:
@@ -11537,35 +11792,18 @@ snapshots:
       fast-wrap-ansi: 0.2.2
       sisteransi: 1.0.5
 
-  '@clerk/backend@3.14.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@clerk/backend@3.14.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@clerk/shared': 4.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@clerk/shared': 4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       standardwebhooks: 1.0.0
       tslib: 2.8.1
     transitivePeerDependencies:
       - react
       - react-dom
 
-  '@clerk/clerk-js@6.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@clerk/shared': 4.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@stripe/stripe-js': 5.6.0
-      '@swc/helpers': 0.5.21
-      '@tanstack/query-core': 5.100.14
-      '@zxcvbn-ts/core': 3.0.4
-      '@zxcvbn-ts/language-common': 3.0.4
-      alien-signals: 2.0.6
-      browser-tabs-lock: 1.3.0
-      core-js: 3.47.0
-      crypto-js: 4.2.0
-      dequal: 2.0.3
-    transitivePeerDependencies:
-      - react
-      - react-dom
-
-  '@clerk/clerk-js@6.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@clerk/clerk-js@6.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@clerk/shared': 4.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@clerk/shared': 4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@stripe/stripe-js': 5.6.0
       '@swc/helpers': 0.5.21
       '@tanstack/query-core': 5.100.14
@@ -11599,75 +11837,58 @@ snapshots:
       '@clerk/electron-passkeys-win32-arm64-msvc': 0.0.3
       '@clerk/electron-passkeys-win32-x64-msvc': 0.0.3
 
-  '@clerk/electron@0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@clerk/electron@0.0.34(@clerk/electron-passkeys@0.0.3)(electron-store@8.2.0)(electron@41.5.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@clerk/clerk-js': 6.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@clerk/react': 6.14.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@clerk/shared': 4.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@clerk/clerk-js': 6.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@clerk/react': 6.14.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@clerk/shared': 4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       electron: 41.5.0
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
     optionalDependencies:
       '@clerk/electron-passkeys': 0.0.3
       electron-store: 8.2.0
-      react-dom: 19.2.6(react@19.2.6)
+      react-dom: 19.2.8(react@19.2.8)
 
-  '@clerk/expo@4.2.0(patch_hash=72e426f44fc1cde16fc2cbba3d1e96cdca7c6d957faa73d0fe6b43948608a6c1)(expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(expo-constants@56.0.18)(expo-crypto@56.0.4(expo@56.0.12))(expo-secure-store@56.0.4(expo@56.0.12))(expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)':
+  '@clerk/expo@4.2.0(patch_hash=72e426f44fc1cde16fc2cbba3d1e96cdca7c6d957faa73d0fe6b43948608a6c1)(expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(expo-constants@56.0.18)(expo-crypto@56.0.4(expo@56.0.12))(expo-secure-store@56.0.4(expo@56.0.12))(expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)':
     dependencies:
-      '@clerk/clerk-js': 6.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@clerk/react': 6.14.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@clerk/shared': 4.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+      '@clerk/clerk-js': 6.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@clerk/react': 6.14.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@clerk/shared': 4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@expo/config-plugins': 56.0.9(typescript@6.0.3)
       base-64: 1.0.0
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-url-polyfill: 4.0.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-url-polyfill: 4.0.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       tslib: 2.8.1
     optionalDependencies:
-      expo-auth-session: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo-auth-session: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-crypto: 56.0.4(expo@56.0.12)
       expo-secure-store: 56.0.4(expo@56.0.12)
-      expo-web-browser: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      react-dom: 19.2.3(react@19.2.3)
+      expo-web-browser: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      react-dom: 19.2.8(react@19.2.8)
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  '@clerk/react@6.14.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@clerk/shared': 4.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-      tslib: 2.8.1
-
-  '@clerk/react@6.14.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@clerk/react@6.14.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@clerk/shared': 4.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@clerk/shared': 4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       tslib: 2.8.1
 
-  '@clerk/shared@4.29.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@tanstack/query-core': 5.100.14
-      dequal: 2.0.3
-      glob-to-regexp: 0.4.1
-      js-cookie: 3.0.7
-    optionalDependencies:
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-
-  '@clerk/shared@4.29.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@clerk/shared@4.29.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tanstack/query-core': 5.100.14
       dequal: 2.0.3
       glob-to-regexp: 0.4.1
       js-cookie: 3.0.7
     optionalDependencies:
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
   '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260704.1)':
     dependencies:
@@ -11694,24 +11915,24 @@ snapshots:
 
   '@cloudflare/workers-types@5.20260726.1': {}
 
-  '@distilled.cloud/aws@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/aws@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
       '@aws-crypto/crc32': 5.2.0
       '@aws-crypto/util': 5.2.0
       '@aws-sdk/credential-providers': 3.1062.0
       '@aws-sdk/types': 3.973.10
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@smithy/shared-ini-file-loader': 4.5.6
       '@smithy/types': 4.14.3
       '@smithy/util-base64': 4.4.6
       aws4fetch: 1.0.20
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       fast-xml-parser: 5.8.0
 
-  '@distilled.cloud/axiom@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/axiom@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
   '@distilled.cloud/cloudflare-rolldown-plugin@0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.1.5)(workerd@1.20260704.1)':
     dependencies:
@@ -11724,150 +11945,144 @@ snapshots:
     transitivePeerDependencies:
       - workerd
 
-  '@distilled.cloud/cloudflare-runtime@0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/cloudflare-runtime@0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/platform-bun@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
       '@alchemy.run/node-utils': 0.0.5
-      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       workerd: 1.20260704.1
     optionalDependencies:
-      '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
-      '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+      '@effect/platform-bun': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
+      '@effect/platform-node': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
 
-  '@distilled.cloud/cloudflare-vite-plugin@0.13.10(f97c3167f1a1990dddb83bff73e575e5)':
+  '@distilled.cloud/cloudflare-vite-plugin@0.13.10(39593ccaec5e037806bfe2324b0eb94a)':
     dependencies:
-      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@distilled.cloud/cloudflare-rolldown-plugin': 0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.1.5)(workerd@1.20260704.1)
-      '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/platform-bun@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
     optionalDependencies:
-      '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
-      '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
+      '@effect/platform-bun': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
+      '@effect/platform-node': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - rolldown
       - workerd
 
-  '@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
-  '@distilled.cloud/core@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/core@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
-  '@distilled.cloud/neon@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/neon@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
-  '@distilled.cloud/planetscale@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@distilled.cloud/planetscale@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
-  '@dnd-kit/accessibility@3.1.1(react@19.2.6)':
+  '@dnd-kit/accessibility@3.1.1(react@19.2.8)':
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
 
-  '@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@dnd-kit/core@6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@dnd-kit/accessibility': 3.1.1(react@19.2.6)
-      '@dnd-kit/utilities': 3.2.2(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@dnd-kit/accessibility': 3.1.1(react@19.2.8)
+      '@dnd-kit/utilities': 3.2.2(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       tslib: 2.8.1
 
-  '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)':
+  '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@dnd-kit/core': 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@dnd-kit/utilities': 3.2.2(react@19.2.6)
-      react: 19.2.6
+      '@dnd-kit/core': 6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@dnd-kit/utilities': 3.2.2(react@19.2.8)
+      react: 19.2.8
       tslib: 2.8.1
 
-  '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)':
+  '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@dnd-kit/core': 6.3.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@dnd-kit/utilities': 3.2.2(react@19.2.6)
-      react: 19.2.6
+      '@dnd-kit/core': 6.3.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@dnd-kit/utilities': 3.2.2(react@19.2.8)
+      react: 19.2.8
       tslib: 2.8.1
 
-  '@dnd-kit/utilities@3.2.2(react@19.2.6)':
+  '@dnd-kit/utilities@3.2.2(react@19.2.8)':
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
 
   '@drizzle-team/brocli@0.12.0': {}
 
-  '@effect/atom-react@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(react@19.2.3)(scheduler@0.27.0)':
-    dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      react: 19.2.3
-      scheduler: 0.27.0
-
-  '@effect/atom-react@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(react@19.2.6)(scheduler@0.27.0)':
+  '@effect/atom-react@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(react@19.2.8)(scheduler@0.27.0)':
     dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      react: 19.2.6
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
+      react: 19.2.8
       scheduler: 0.27.0
 
-  '@effect/openapi-generator@4.0.0-beta.103(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@effect/openapi-generator@4.0.0-rc.111(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@effect/platform-node': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       swagger2openapi: 7.0.8
     transitivePeerDependencies:
       - encoding
 
-  '@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)':
+  '@effect/platform-bun@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)':
     dependencies:
-      '@effect/platform-node-shared': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      '@effect/platform-node-shared': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
 
-  '@effect/platform-node-shared@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)':
+  '@effect/platform-node-shared@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)':
     dependencies:
       '@types/ws': 8.18.1
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
+      ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
 
-  '@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)':
+  '@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)':
     dependencies:
-      '@effect/platform-node-shared': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      ioredis: 5.11.0
+      '@effect/platform-node-shared': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       mime: 4.1.0
-      undici: 8.9.0
+      redis: 6.2.1
+      undici: 8.10.0
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
 
-  '@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
       '@cloudflare/workers-types': 5.20260726.1
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
-  '@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@effect/sql-pg@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      pg: 8.22.0
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
+      pg: 8.23.0
       pg-connection-string: 2.14.0
-      pg-cursor: 2.21.0(pg@8.22.0)
-      pg-pool: 3.14.0(pg@8.22.0)
+      pg-cursor: 2.22.0(pg@8.23.0)
+      pg-pool: 3.14.0(pg@8.23.0)
       pg-types: 4.1.0
     transitivePeerDependencies:
       - pg-native
 
-  '@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@effect/sql-sqlite-bun@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))':
     dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
 
   '@effect/tsgo-darwin-arm64@0.13.2':
     optional: true
@@ -11900,9 +12115,10 @@ snapshots:
       '@effect/tsgo-win32-arm64': 0.13.2
       '@effect/tsgo-win32-x64': 0.13.2
 
-  '@effect/vitest@4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))':
+  '@effect/vitest@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)':
     dependencies:
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
+      vitest: 4.1.9(@types/node@24.12.4)(@vitest/browser-preview@4.1.9)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
 
   '@egjs/hammerjs@2.0.17':
     dependencies:
@@ -12220,7 +12436,7 @@ snapshots:
 
   '@expo-google-fonts/material-symbols@0.4.38': {}
 
-  '@expo/cli@56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)(utf-8-validate@6.0.6)':
+  '@expo/cli@56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)(utf-8-validate@6.0.6)':
     dependencies:
       '@expo/code-signing-certificates': 0.0.6
       '@expo/config': 56.0.9(typescript@6.0.3)
@@ -12230,7 +12446,7 @@ snapshots:
       '@expo/image-utils': 0.10.1(typescript@6.0.3)
       '@expo/inline-modules': 0.0.12(typescript@6.0.3)
       '@expo/json-file': 10.2.0
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@expo/metro': 56.0.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       '@expo/metro-config': 56.0.14(patch_hash=8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46)(bufferutil@4.1.0)(expo@56.0.12)(typescript@6.0.3)(utf-8-validate@6.0.6)
       '@expo/metro-file-map': 56.0.3
@@ -12239,7 +12455,7 @@ snapshots:
       '@expo/plist': 0.7.0
       '@expo/prebuild-config': 56.0.16(typescript@6.0.3)
       '@expo/require-utils': 56.1.3(typescript@6.0.3)
-      '@expo/router-server': 56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+      '@expo/router-server': 56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@expo/schema-utils': 56.0.1
       '@expo/spawn-async': 1.8.0
       '@expo/ws-tunnel': 2.0.0(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))
@@ -12255,7 +12471,7 @@ snapshots:
       connect: 3.7.0
       debug: 4.4.3
       dnssd-advertise: 1.1.4
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-server: 56.0.5
       fetch-nodeshim: 0.4.10
       getenv: 2.0.0
@@ -12281,8 +12497,8 @@ snapshots:
       ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       zod: 3.25.76
     optionalDependencies:
-      expo-router: 56.2.11(e1497a99e5bc5be76c1cdb733671f865)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo-router: 56.2.11(b48b57e3a89caf041868d51a02ead118)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - '@expo/dom-webview'
       - '@expo/metro-runtime'
@@ -12296,90 +12512,13 @@ snapshots:
       - typescript
       - utf-8-validate
 
-  '@expo/cli@56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(utf-8-validate@6.0.6)':
+  '@expo/code-signing-certificates@0.0.6':
     dependencies:
-      '@expo/code-signing-certificates': 0.0.6
-      '@expo/config': 56.0.9(typescript@6.0.3)
-      '@expo/config-plugins': 56.0.9(typescript@6.0.3)
-      '@expo/devcert': 1.2.1
-      '@expo/env': 2.3.0
-      '@expo/image-utils': 0.10.1(typescript@6.0.3)
-      '@expo/inline-modules': 0.0.12(typescript@6.0.3)
-      '@expo/json-file': 10.2.0
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      '@expo/metro': 56.0.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      '@expo/metro-config': 56.0.14(patch_hash=8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46)(bufferutil@4.1.0)(expo@56.0.12)(typescript@6.0.3)(utf-8-validate@6.0.6)
-      '@expo/metro-file-map': 56.0.3
-      '@expo/osascript': 2.6.0
-      '@expo/package-manager': 1.12.1
-      '@expo/plist': 0.7.0
-      '@expo/prebuild-config': 56.0.16(typescript@6.0.3)
-      '@expo/require-utils': 56.1.3(typescript@6.0.3)
-      '@expo/router-server': 56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@expo/schema-utils': 56.0.1
-      '@expo/spawn-async': 1.8.0
-      '@expo/ws-tunnel': 2.0.0(ws@8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6))
-      '@expo/xcpretty': 4.4.4
-      '@react-native/dev-middleware': 0.85.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      accepts: 1.3.8
-      arg: 5.0.2
-      bplist-creator: 0.1.0
-      bplist-parser: 0.3.2
-      chalk: 4.1.2
-      ci-info: 3.9.0
-      compression: 1.8.1
-      connect: 3.7.0
-      debug: 4.4.3
-      dnssd-advertise: 1.1.4
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      expo-server: 56.0.5
-      fetch-nodeshim: 0.4.10
-      getenv: 2.0.0
-      glob: 13.0.6
-      lan-network: 0.2.1
-      multitars: 1.0.0
-      node-forge: 1.4.0
-      npm-package-arg: 11.0.3
-      ora: 3.4.0
-      picomatch: 4.0.4
-      pretty-format: 29.7.0
-      progress: 2.0.3
-      prompts: 2.4.2
-      resolve-from: 5.0.0
-      semver: 7.8.5
-      send: 0.19.2
-      slugify: 1.6.9
-      stacktrace-parser: 0.1.11
-      structured-headers: 0.4.1
-      terminal-link: 2.1.1
-      toqr: 0.1.1
-      wrap-ansi: 7.0.0
-      ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      zod: 3.25.76
-    optionalDependencies:
-      expo-router: 56.2.11(80beea6a31a5d2003a696c1401258797)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    transitivePeerDependencies:
-      - '@expo/dom-webview'
-      - '@expo/metro-runtime'
-      - bufferutil
-      - expo-constants
-      - expo-font
-      - react
-      - react-dom
-      - react-server-dom-webpack
-      - supports-color
-      - typescript
-      - utf-8-validate
-    optional: true
-
-  '@expo/code-signing-certificates@0.0.6':
-    dependencies:
-      node-forge: 1.4.0
-
-  '@expo/config-plugins@56.0.9(typescript@6.0.3)':
-    dependencies:
-      '@expo/config-types': 56.0.6
+      node-forge: 1.4.0
+
+  '@expo/config-plugins@56.0.9(typescript@6.0.3)':
+    dependencies:
+      '@expo/config-types': 56.0.6
       '@expo/json-file': 10.2.0
       '@expo/plist': 0.7.0
       '@expo/require-utils': 56.1.3(typescript@6.0.3)
@@ -12421,33 +12560,18 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@expo/devtools@56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@expo/devtools@56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
       chalk: 4.1.2
     optionalDependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  '@expo/devtools@56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
+  '@expo/dom-webview@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      chalk: 4.1.2
-    optionalDependencies:
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
-
-  '@expo/dom-webview@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
-    dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  '@expo/dom-webview@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
-    dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   '@expo/env@2.3.0':
     dependencies:
@@ -12521,25 +12645,15 @@ snapshots:
       - supports-color
       - typescript
 
-  '@expo/log-box@56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@expo/log-box@56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       anser: 1.4.10
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       stacktrace-parser: 0.1.11
 
-  '@expo/log-box@56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
-    dependencies:
-      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      anser: 1.4.10
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      stacktrace-parser: 0.1.11
-    optional: true
-
   '@expo/metro-config@56.0.14(patch_hash=8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46)(bufferutil@4.1.0)(expo@56.0.12)(typescript@6.0.3)(utf-8-validate@6.0.6)':
     dependencies:
       '@babel/code-frame': 7.29.7
@@ -12566,7 +12680,7 @@ snapshots:
       postcss: 8.5.15
       resolve-from: 5.0.0
     optionalDependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
     transitivePeerDependencies:
       - bufferutil
       - supports-color
@@ -12584,32 +12698,18 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@expo/metro-runtime@56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
-    dependencies:
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      anser: 1.4.10
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      pretty-format: 29.7.0
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      stacktrace-parser: 0.1.11
-      whatwg-fetch: 3.6.20
-    optionalDependencies:
-      react-dom: 19.2.3(react@19.2.3)
-
-  '@expo/metro-runtime@56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
+  '@expo/metro-runtime@56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       anser: 1.4.10
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       pretty-format: 29.7.0
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       stacktrace-parser: 0.1.11
       whatwg-fetch: 3.6.20
     optionalDependencies:
-      react-dom: 19.2.6(react@19.2.6)
-    optional: true
+      react-dom: 19.2.8(react@19.2.8)
 
   '@expo/metro@56.0.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)':
     dependencies:
@@ -12687,36 +12787,20 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@expo/router-server@56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      debug: 4.4.3
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-server: 56.0.5
-      react: 19.2.3
-    optionalDependencies:
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-router: 56.2.11(e1497a99e5bc5be76c1cdb733671f865)
-      react-dom: 19.2.3(react@19.2.3)
-    transitivePeerDependencies:
-      - supports-color
-
-  '@expo/router-server@56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@expo/router-server@56.0.14(@expo/metro-runtime@56.0.15)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo-server@56.0.5)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       debug: 4.4.3
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-server: 56.0.5
-      react: 19.2.6
+      react: 19.2.8
     optionalDependencies:
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      expo-router: 56.2.11(80beea6a31a5d2003a696c1401258797)
-      react-dom: 19.2.6(react@19.2.6)
+      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      expo-router: 56.2.11(b48b57e3a89caf041868d51a02ead118)
+      react-dom: 19.2.8(react@19.2.8)
     transitivePeerDependencies:
       - supports-color
-    optional: true
 
   '@expo/schema-utils@56.0.1': {}
 
@@ -12728,35 +12812,18 @@ snapshots:
 
   '@expo/sudo-prompt@9.3.2': {}
 
-  '@expo/ui@56.0.18(32843e0c0883df8bccfa0b8323659df5)':
+  '@expo/ui@56.0.18(8809ac8ddbfcdc4e2ffacd344f03e232)':
     dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       sf-symbols-typescript: 2.2.0
-      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
     optionalDependencies:
       '@babel/core': 7.29.7
-      react-dom: 19.2.6(react@19.2.6)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-    transitivePeerDependencies:
-      - '@types/react'
-      - '@types/react-dom'
-    optional: true
-
-  '@expo/ui@56.0.18(3cdc0dde9f93166d952f1e1bd0cb25c0)':
-    dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      sf-symbols-typescript: 2.2.0
-      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-    optionalDependencies:
-      '@babel/core': 7.29.7
-      react-dom: 19.2.3(react@19.2.3)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react-dom: 19.2.8(react@19.2.8)
+      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
     transitivePeerDependencies:
       - '@types/react'
       - '@types/react-dom'
@@ -12817,18 +12884,18 @@ snapshots:
       '@floating-ui/core': 1.7.5
       '@floating-ui/utils': 0.2.11
 
-  '@floating-ui/react-dom@2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@floating-ui/react-dom@2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@floating-ui/dom': 1.7.6
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
-  '@floating-ui/react@0.27.19(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@floating-ui/react@0.27.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@floating-ui/react-dom': 2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@floating-ui/utils': 0.2.11
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       tabbable: 6.4.0
 
   '@floating-ui/utils@0.2.11': {}
@@ -12966,7 +13033,8 @@ snapshots:
     optionalDependencies:
       '@types/node': 24.12.4
 
-  '@ioredis/commands@1.10.0': {}
+  '@ioredis/commands@1.10.0':
+    optional: true
 
   '@isaacs/fs-minipass@4.0.1':
     dependencies:
@@ -13015,20 +13083,13 @@ snapshots:
     dependencies:
       jsbi: 4.3.2
 
-  '@legendapp/list@3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@legendapp/list@3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      react: 19.2.3
-      use-sync-external-store: 1.6.0(react@19.2.3)
+      react: 19.2.8
+      use-sync-external-store: 1.6.0(react@19.2.8)
     optionalDependencies:
-      react-dom: 19.2.3(react@19.2.3)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  '@legendapp/list@3.3.5(patch_hash=6befc76c7f590a0b0915b531386ce7e3bbb364612868e1f04e4ac84f60a39ab5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
-    dependencies:
-      react: 19.2.6
-      use-sync-external-store: 1.6.0(react@19.2.6)
-    optionalDependencies:
-      react-dom: 19.2.6(react@19.2.6)
+      react-dom: 19.2.8(react@19.2.8)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   '@lexical/clipboard@0.41.0':
     dependencies:
@@ -13044,7 +13105,7 @@ snapshots:
       lexical: 0.41.0
       prismjs: 1.30.0
 
-  '@lexical/devtools-core@0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@lexical/devtools-core@0.41.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@lexical/html': 0.41.0
       '@lexical/link': 0.41.0
@@ -13052,8 +13113,8 @@ snapshots:
       '@lexical/table': 0.41.0
       '@lexical/utils': 0.41.0
       lexical: 0.41.0
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
   '@lexical/dragon@0.41.0':
     dependencies:
@@ -13128,10 +13189,10 @@ snapshots:
       '@lexical/utils': 0.41.0
       lexical: 0.41.0
 
-  '@lexical/react@0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(yjs@13.6.31)':
+  '@lexical/react@0.41.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(yjs@13.6.31)':
     dependencies:
-      '@floating-ui/react': 0.27.19(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@lexical/devtools-core': 0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@floating-ui/react': 0.27.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@lexical/devtools-core': 0.41.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@lexical/dragon': 0.41.0
       '@lexical/extension': 0.41.0
       '@lexical/hashtag': 0.41.0
@@ -13148,9 +13209,9 @@ snapshots:
       '@lexical/utils': 0.41.0
       '@lexical/yjs': 0.41.0(yjs@13.6.31)
       lexical: 0.41.0
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-      react-error-boundary: 6.1.2(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
+      react-error-boundary: 6.1.2(react@19.2.8)
     transitivePeerDependencies:
       - yjs
 
@@ -13221,7 +13282,7 @@ snapshots:
   '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)':
     dependencies:
       '@types/ws': 8.18.1
-      ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+      ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - bufferutil
       - utf-8-validate
@@ -13450,6 +13511,8 @@ snapshots:
 
   '@oxc-project/types@0.139.0': {}
 
+  '@oxc-project/types@0.144.0': {}
+
   '@oxfmt/binding-android-arm-eabi@0.57.0':
     optional: true
 
@@ -13606,65 +13669,58 @@ snapshots:
       tslib: 2.8.1
       webcrypto-core: 1.9.2
 
-  '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@pierre/theme': 1.1.0
-      '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0)
+      '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(shiki@4.2.0)
       '@shikijs/transformers': 4.2.0
       diff: 9.0.0
       hast-util-to-html: 9.0.5
       lru_map: 0.4.1
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       shiki: 4.2.0
     transitivePeerDependencies:
       - '@shikijs/themes'
 
-  '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@pierre/theme': 1.1.0
-      '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0)
+      '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(shiki@4.2.0)
       '@shikijs/transformers': 4.2.0
       diff: 9.0.0
       hast-util-to-html: 9.0.5
       lru_map: 0.4.1
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       shiki: 4.2.0
     transitivePeerDependencies:
       - '@shikijs/themes'
 
   '@pierre/theme@1.1.0': {}
 
-  '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0)':
+  '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(shiki@4.2.0)':
     optionalDependencies:
       '@pierre/theme': 1.1.0
       '@shikijs/themes': 4.2.0
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       shiki: 4.2.0
 
-  '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0)':
+  '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(shiki@4.2.0)':
     optionalDependencies:
       '@pierre/theme': 1.1.0
       '@shikijs/themes': 4.3.0
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
       shiki: 4.2.0
 
-  '@pierre/trees@1.0.0-beta.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@pierre/trees@1.0.0-beta.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       preact: 11.0.0-beta.0
       preact-render-to-string: 6.6.5(preact@11.0.0-beta.0)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-
-  '@pierre/trees@1.0.0-beta.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
-    dependencies:
-      preact: 11.0.0-beta.0
-      preact-render-to-string: 6.6.5(preact@11.0.0-beta.0)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
   '@polka/url@1.0.0-next.29': {}
 
@@ -13672,430 +13728,210 @@ snapshots:
 
   '@radix-ui/primitive@1.1.3': {}
 
-  '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
     optional: true
 
-  '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      react: 19.2.3
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.16)(react@19.2.6)':
+  '@radix-ui/react-context@1.1.2(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
 
-  '@radix-ui/react-context@1.1.2(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  '@radix-ui/react-context@1.1.2(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.3)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.8)
       aria-hidden: 1.2.6
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-      react-remove-scroll: 2.7.2(@types/react@19.2.16)(react@19.2.3)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
+      react-remove-scroll: 2.7.2(@types/react@19.2.16)(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
 
-  '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
-    dependencies:
-      '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.6)
-      aria-hidden: 1.2.6
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-      react-remove-scroll: 2.7.2(@types/react@19.2.16)(react@19.2.6)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-direction@1.1.1(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-direction@1.1.1(@types/react@19.2.16)(react@19.2.6)':
+  '@radix-ui/react-direction@1.1.1(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
     optional: true
 
-  '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-
-  '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
 
-  '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      react: 19.2.3
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.16)(react@19.2.6)':
+  '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
 
-  '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-id@1.1.1(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-id@1.1.1(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  '@radix-ui/react-id@1.1.1(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
 
-  '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
 
-  '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-
-  '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
 
-  '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
 
-  '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-slot': 1.2.3(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+  '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
+      '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
     optional: true
 
-  '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-slot@1.2.3(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
 
-  '@radix-ui/react-slot@1.2.3(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-slot@1.2.4(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  '@radix-ui/react-slot@1.2.3(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
+      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
     optional: true
 
-  '@radix-ui/react-slot@1.2.4(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-slot@1.2.4(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
-    dependencies:
-      '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-    optionalDependencies:
-      '@types/react': 19.2.16
-      '@types/react-dom': 19.2.3(@types/react@19.2.16)
-    optional: true
-
-  '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@radix-ui/primitive': 1.1.3
-      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-context': 1.1.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-direction': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-id': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
       '@types/react-dom': 19.2.3(@types/react@19.2.16)
     optional: true
 
-  '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.16)(react@19.2.3)':
-    dependencies:
-      '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.16)(react@19.2.6)':
+  '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
+      '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
 
-  '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.3)
-      react: 19.2.3
+      '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.16)(react@19.2.6)':
+  '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.6)
-      react: 19.2.6
+      '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.16)(react@19.2.8)
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
 
-  '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.16)(react@19.2.3)':
+  '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.16)(react@19.2.8)':
     dependencies:
-      react: 19.2.3
+      react: 19.2.8
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.16)(react@19.2.6)':
-    dependencies:
-      react: 19.2.6
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
   '@react-grab/cli@0.1.44':
     dependencies:
       agent-install: 0.0.5
@@ -14107,22 +13943,16 @@ snapshots:
       prompts: 2.4.2
       tinyexec: 1.2.4
 
-  '@react-native-masked-view/masked-view@0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@react-native-masked-view/masked-view@0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     optional: true
 
-  '@react-native-masked-view/masked-view@0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
+  '@react-native-menu/menu@2.0.0(patch_hash=c7f66d121c726ade4f5c4e1aed11a691e5711d244c544084e289ac26132a0045)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
-
-  '@react-native-menu/menu@2.0.0(patch_hash=c7f66d121c726ade4f5c4e1aed11a691e5711d244c544084e289ac26132a0045)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
-    dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   '@react-native/assets-registry@0.85.3': {}
 
@@ -14254,150 +14084,196 @@ snapshots:
 
   '@react-native/normalize-colors@0.85.3': {}
 
-  '@react-native/virtualized-lists@0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@react-native/virtualized-lists@0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
       invariant: 2.2.4
       nullthrows: 1.1.1
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     optionalDependencies:
       '@types/react': 19.2.16
 
-  '@react-native/virtualized-lists@0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)':
-    dependencies:
-      invariant: 2.2.4
-      nullthrows: 1.1.1
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  '@react-navigation/core@7.21.2(react@19.2.3)':
+  '@react-navigation/core@7.21.2(react@19.2.8)':
     dependencies:
       '@react-navigation/routers': 7.6.0
       escape-string-regexp: 4.0.0
       fast-deep-equal: 3.1.3
       nanoid: 3.3.12
       query-string: 7.1.3
-      react: 19.2.3
+      react: 19.2.8
       react-is: 19.2.7
-      use-latest-callback: 0.2.6(react@19.2.3)
-      use-sync-external-store: 1.6.0(react@19.2.3)
+      use-latest-callback: 0.2.6(react@19.2.8)
+      use-sync-external-store: 1.6.0(react@19.2.8)
 
-  '@react-navigation/elements@2.9.26(c6a2ad0e2c930f8e3896e77c3ba11bc4)':
+  '@react-navigation/elements@2.9.26(d3a33815d1b1cf4cc129fdd2659b9f8d)':
     dependencies:
-      '@react-navigation/native': 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      '@react-navigation/native': 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       color: 4.2.3
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      use-latest-callback: 0.2.6(react@19.2.3)
-      use-sync-external-store: 1.6.0(react@19.2.3)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      use-latest-callback: 0.2.6(react@19.2.8)
+      use-sync-external-store: 1.6.0(react@19.2.8)
     optionalDependencies:
-      '@react-native-masked-view/masked-view': 0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      '@react-native-masked-view/masked-view': 0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
-  '@react-navigation/native-stack@7.17.6(patch_hash=0365b727005b3a830af80ccbd0b637666cc0338d33ddcb7a25b6de51a21ea027)(7ffd26361d0ffb9781446d1519df37be)':
+  '@react-navigation/native-stack@7.17.6(patch_hash=0365b727005b3a830af80ccbd0b637666cc0338d33ddcb7a25b6de51a21ea027)(232652f390be5c9c4c2eeb2e558a88fc)':
     dependencies:
-      '@react-navigation/elements': 2.9.26(c6a2ad0e2c930f8e3896e77c3ba11bc4)
-      '@react-navigation/native': 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      '@react-navigation/elements': 2.9.26(d3a33815d1b1cf4cc129fdd2659b9f8d)
+      '@react-navigation/native': 7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       color: 4.2.3
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-screens: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-screens: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       sf-symbols-typescript: 2.2.0
       warn-once: 0.1.1
     transitivePeerDependencies:
       - '@react-native-masked-view/masked-view'
 
-  '@react-navigation/native@7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)':
+  '@react-navigation/native@7.3.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)':
     dependencies:
-      '@react-navigation/core': 7.21.2(react@19.2.3)
+      '@react-navigation/core': 7.21.2(react@19.2.8)
       escape-string-regexp: 4.0.0
       fast-deep-equal: 3.1.3
       nanoid: 3.3.12
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       standard-navigation: 0.0.7
-      use-latest-callback: 0.2.6(react@19.2.3)
+      use-latest-callback: 0.2.6(react@19.2.8)
 
   '@react-navigation/routers@7.6.0':
     dependencies:
       nanoid: 3.3.12
 
+  '@redis/bloom@6.2.1(@redis/client@6.2.1)':
+    dependencies:
+      '@redis/client': 6.2.1
+
+  '@redis/client@6.2.1':
+    dependencies:
+      cluster-key-slot: 1.1.2
+
+  '@redis/json@6.2.1(@redis/client@6.2.1)':
+    dependencies:
+      '@redis/client': 6.2.1
+
+  '@redis/search@6.2.1(@redis/client@6.2.1)':
+    dependencies:
+      '@redis/client': 6.2.1
+
+  '@redis/time-series@6.2.1(@redis/client@6.2.1)':
+    dependencies:
+      '@redis/client': 6.2.1
+
   '@rolldown/binding-android-arm64@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-android-arm64@1.1.5':
     optional: true
 
+  '@rolldown/binding-android-arm64@1.2.4':
+    optional: true
+
   '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-darwin-arm64@1.1.5':
     optional: true
 
+  '@rolldown/binding-darwin-arm64@1.2.4':
+    optional: true
+
   '@rolldown/binding-darwin-x64@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-darwin-x64@1.1.5':
     optional: true
 
+  '@rolldown/binding-darwin-x64@1.2.4':
+    optional: true
+
   '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-freebsd-x64@1.1.5':
     optional: true
 
+  '@rolldown/binding-freebsd-x64@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-arm-gnueabihf@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-arm-gnueabihf@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-arm64-gnu@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-arm64-gnu@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-arm64-musl@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-arm64-musl@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-ppc64-gnu@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-ppc64-gnu@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-s390x-gnu@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-s390x-gnu@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-x64-gnu@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-x64-gnu@1.2.4':
+    optional: true
+
   '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-linux-x64-musl@1.1.5':
     optional: true
 
+  '@rolldown/binding-linux-x64-musl@1.2.4':
+    optional: true
+
   '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-openharmony-arm64@1.1.5':
     optional: true
 
+  '@rolldown/binding-openharmony-arm64@1.2.4':
+    optional: true
+
   '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
     dependencies:
       '@emnapi/core': 1.10.0
@@ -14418,12 +14294,18 @@ snapshots:
   '@rolldown/binding-win32-arm64-msvc@1.1.5':
     optional: true
 
+  '@rolldown/binding-win32-arm64-msvc@1.2.4':
+    optional: true
+
   '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
     optional: true
 
   '@rolldown/binding-win32-x64-msvc@1.1.5':
     optional: true
 
+  '@rolldown/binding-win32-x64-msvc@1.2.4':
+    optional: true
+
   '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.1.5)':
     dependencies:
       '@babel/core': 7.29.7
@@ -14658,25 +14540,25 @@ snapshots:
     dependencies:
       defer-to-connect: 2.0.1
 
-  '@t3tools/mobile-markdown-text@file:apps/mobile/modules/t3-markdown-text(ed3009b8f2424467288a00b38bef28fe)':
+  '@t3tools/mobile-markdown-text@file:apps/mobile/modules/t3-markdown-text(9af37707fb01843f8e17dc52481dc4db)':
     dependencies:
-      expo-asset: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
-      expo-clipboard: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      expo-asset: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
+      expo-clipboard: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-haptics: 56.0.3(expo@56.0.12)
-      expo-symbols: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-nitro-markdown: 0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      expo-symbols: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-nitro-markdown: 0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
   '@t3tools/mobile-review-diff-native@file:apps/mobile/modules/t3-review-diff': {}
 
   '@t3tools/mobile-terminal-native@file:apps/mobile/modules/t3-terminal': {}
 
-  '@tabler/icons-react-native@3.44.0(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react@19.2.3)':
+  '@tabler/icons-react-native@3.44.0(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tabler/icons': 3.44.0
-      react: 19.2.3
-      react-native-svg: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react: 19.2.8
+      react-native-svg: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
   '@tabler/icons@3.44.0': {}
 
@@ -14820,35 +14702,35 @@ snapshots:
 
   '@tanstack/query-core@5.100.14': {}
 
-  '@tanstack/react-pacer@0.19.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@tanstack/react-pacer@0.19.4(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tanstack/pacer': 0.18.0
-      '@tanstack/react-store': 0.8.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@tanstack/react-store': 0.8.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
-  '@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@tanstack/react-router@1.170.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tanstack/history': 1.162.0
-      '@tanstack/react-store': 0.9.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@tanstack/react-store': 0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       '@tanstack/router-core': 1.171.8
       isbot: 5.1.40
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
 
-  '@tanstack/react-store@0.8.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@tanstack/react-store@0.8.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tanstack/store': 0.8.1
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-      use-sync-external-store: 1.6.0(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
+      use-sync-external-store: 1.6.0(react@19.2.8)
 
-  '@tanstack/react-store@0.9.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)':
+  '@tanstack/react-store@0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
     dependencies:
       '@tanstack/store': 0.9.3
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
-      use-sync-external-store: 1.6.0(react@19.2.6)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
+      use-sync-external-store: 1.6.0(react@19.2.8)
 
   '@tanstack/router-core@1.171.8':
     dependencies:
@@ -14870,7 +14752,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))':
+  '@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))':
     dependencies:
       '@babel/core': 7.29.7
       '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7)
@@ -14886,7 +14768,7 @@ snapshots:
       unplugin: 3.0.0
       zod: 4.4.3
     optionalDependencies:
-      '@tanstack/react-router': 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      '@tanstack/react-router': 1.170.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
       vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
     transitivePeerDependencies:
       - supports-color
@@ -15195,6 +15077,19 @@ snapshots:
       - utf-8-validate
       - vite
 
+  '@vitest/browser-preview@4.1.9(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@4.1.9)':
+    dependencies:
+      '@testing-library/dom': 10.4.1
+      '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
+      '@vitest/browser': 4.1.9(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@4.1.9)
+      vitest: 4.1.9(@types/node@24.12.4)(@vitest/browser-preview@4.1.9)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
+    transitivePeerDependencies:
+      - bufferutil
+      - msw
+      - utf-8-validate
+      - vite
+    optional: true
+
   '@vitest/browser@4.1.9(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vitest@4.1.9)':
     dependencies:
       '@blazediff/core': 1.9.1
@@ -15212,6 +15107,24 @@ snapshots:
       - utf-8-validate
       - vite
 
+  '@vitest/browser@4.1.9(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@4.1.9)':
+    dependencies:
+      '@blazediff/core': 1.9.1
+      '@vitest/mocker': 4.1.9(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
+      '@vitest/utils': 4.1.9
+      magic-string: 0.30.21
+      pngjs: 7.0.0
+      sirv: 3.0.2
+      tinyrainbow: 3.1.0
+      vitest: 4.1.9(@types/node@24.12.4)(@vitest/browser-preview@4.1.9)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
+      ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+    transitivePeerDependencies:
+      - bufferutil
+      - msw
+      - utf-8-validate
+      - vite
+    optional: true
+
   '@vitest/expect@4.1.9':
     dependencies:
       '@standard-schema/spec': 1.1.0
@@ -15230,6 +15143,15 @@ snapshots:
       msw: 2.12.11(@types/node@24.12.4)(typescript@6.0.3)
       vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
 
+  '@vitest/mocker@4.1.9(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))':
+    dependencies:
+      '@vitest/spy': 4.1.9
+      estree-walker: 3.0.3
+      magic-string: 0.30.21
+    optionalDependencies:
+      msw: 2.12.11(@types/node@24.12.4)(typescript@6.0.3)
+      vite: 8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)
+
   '@vitest/pretty-format@4.1.9':
     dependencies:
       tinyrainbow: 3.1.0
@@ -15448,22 +15370,22 @@ snapshots:
       json-schema-traverse: 1.0.0
       require-from-string: 2.0.2
 
-  alchemy@2.0.0-beta.65(75567d8add6e3362e26fe00f83a97bee):
+  alchemy@2.0.0-beta.65(208d55979daefb320f74173c6f53ec43):
     dependencies:
       '@alchemy.run/node-utils': 0.0.5
       '@aws-sdk/credential-providers': 3.1062.0
       '@clack/prompts': 0.11.0
-      '@distilled.cloud/aws': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@distilled.cloud/axiom': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@distilled.cloud/aws': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@distilled.cloud/axiom': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@distilled.cloud/cloudflare': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@distilled.cloud/cloudflare-rolldown-plugin': 0.13.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.1.5)(workerd@1.20260704.1)
-      '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/platform-bun@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6))(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@distilled.cloud/cloudflare-vite-plugin': 0.13.10(f97c3167f1a1990dddb83bff73e575e5)
-      '@distilled.cloud/core': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@distilled.cloud/neon': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@distilled.cloud/planetscale': 0.30.2(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@effect/vitest': 4.0.0-beta.103(patch_hash=a16b1e870d8c29e4a98b17cc4c638a4ff471753d8ca3487f78a22b759caf951b)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@distilled.cloud/cloudflare-runtime': 0.13.10(@distilled.cloud/cloudflare@0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/platform-bun@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6))(@effect/platform-node@4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@distilled.cloud/cloudflare-vite-plugin': 0.13.10(39593ccaec5e037806bfe2324b0eb94a)
+      '@distilled.cloud/core': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@distilled.cloud/neon': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@distilled.cloud/planetscale': 0.30.2(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@effect/vitest': 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(vitest@4.1.9)
       '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       '@octokit/rest': 22.0.1
       '@octokit/webhooks': 14.2.0
@@ -15473,10 +15395,10 @@ snapshots:
       '@types/aws-lambda': 8.10.161
       aws4fetch: 1.0.20
       capnweb: 0.6.1
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
       fast-glob: 3.3.3
       fast-xml-parser: 5.8.0
-      ink: 6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.6)(utf-8-validate@6.0.6)
+      ink: 6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.8)(utf-8-validate@6.0.6)
       jszip: 3.10.1
       libsodium-wrappers: 0.8.4
       mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)
@@ -15484,18 +15406,18 @@ snapshots:
       pathe: 2.0.3
       pg: 8.21.0
       picomatch: 4.0.4
-      react: 19.2.6
+      react: 19.2.8
       rolldown: 1.1.5
       undici: 7.27.1
       yaml: 2.9.0
     optionalDependencies:
-      '@effect/platform-bun': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(utf-8-validate@6.0.6)
-      '@effect/platform-node': 4.0.0-beta.103(bufferutil@4.1.0)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(ioredis@5.11.0)(utf-8-validate@6.0.6)
-      '@effect/sql-pg': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@effect/platform-bun': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(utf-8-validate@6.0.6)
+      '@effect/platform-node': 4.0.0-rc.111(bufferutil@4.1.0)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(redis@6.2.1)(utf-8-validate@6.0.6)
+      '@effect/sql-pg': 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       drizzle-kit: 1.0.0-rc.4
-      drizzle-orm: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3)
+      drizzle-orm: 1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-pg@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-sqlite-bun@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3)
       vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
-      ws: 8.21.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
+      ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - '@mongodb-js/zstd'
       - '@types/node'
@@ -15509,6 +15431,7 @@ snapshots:
       - snappy
       - socks
       - utf-8-validate
+      - vitest
       - workerd
 
   alien-signals@2.0.6: {}
@@ -15848,8 +15771,8 @@ snapshots:
       react-refresh: 0.14.2
     optionalDependencies:
       '@babel/runtime': 7.29.7
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-widgets: 56.0.19(3cdc0dde9f93166d952f1e1bd0cb25c0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-widgets: 56.0.19(8809ac8ddbfcdc4e2ffacd344f03e232)
     transitivePeerDependencies:
       - '@babel/core'
       - supports-color
@@ -15901,8 +15824,8 @@ snapshots:
       react-refresh: 0.14.2
     optionalDependencies:
       '@babel/runtime': 7.29.7
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-widgets: 56.0.19(3cdc0dde9f93166d952f1e1bd0cb25c0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-widgets: 56.0.19(8809ac8ddbfcdc4e2ffacd344f03e232)
     transitivePeerDependencies:
       - '@babel/core'
       - supports-color
@@ -15931,9 +15854,9 @@ snapshots:
 
   big-integer@1.6.52: {}
 
-  bippy@0.5.41(react@19.2.6):
+  bippy@0.5.41(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
 
   bluebird@3.7.2: {}
 
@@ -16195,7 +16118,10 @@ snapshots:
 
   clsx@2.1.1: {}
 
-  cluster-key-slot@1.1.1: {}
+  cluster-key-slot@1.1.1:
+    optional: true
+
+  cluster-key-slot@1.1.2: {}
 
   code-excerpt@4.0.0:
     dependencies:
@@ -16516,16 +16442,16 @@ snapshots:
       get-tsconfig: 4.14.0
       jiti: 2.7.0
 
-  drizzle-orm@1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-pg@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@effect/sql-sqlite-bun@4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3):
+  drizzle-orm@1.0.0-rc.4(@cloudflare/workers-types@4.20260604.1)(@effect/sql-d1@4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-pg@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@effect/sql-sqlite-bun@4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)))(@libsql/client@0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bun-types@1.3.14)(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))(expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(mysql2@3.22.4(@types/node@24.12.4))(pg@8.21.0)(zod@4.4.3):
     optionalDependencies:
       '@cloudflare/workers-types': 4.20260604.1
-      '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@effect/sql-pg': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
-      '@effect/sql-sqlite-bun': 4.0.0-beta.103(effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6))
+      '@effect/sql-d1': 4.0.0-beta.101(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@effect/sql-pg': 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
+      '@effect/sql-sqlite-bun': 4.0.0-rc.111(effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03))
       '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       bun-types: 1.3.14
-      effect: 4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6)
-      expo-sqlite: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      effect: 4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03)
+      expo-sqlite: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       mysql2: 3.22.4(@types/node@24.12.4)
       pg: 8.21.0
       zod: 4.4.3
@@ -16544,18 +16470,11 @@ snapshots:
 
   ee-first@1.1.1: {}
 
-  effect@4.0.0-beta.103(patch_hash=af36b7948b6f9c56623074662b51dade5699880c1a7c71245de73e13c3185fb6):
+  effect@4.0.0-rc.111(patch_hash=e9e0647ac655d6faa37f4f63a300502e14596127965933e90d26389c101c9d03):
     dependencies:
       '@standard-schema/spec': 1.1.0
       fast-check: 4.9.0
-      find-my-way-ts: 0.1.6
-      ini: 7.0.0
-      kubernetes-types: 1.30.0
-      msgpackr: 2.0.4
-      multipasta: 0.2.8
-      toml: 4.3.0
-      uuid: 14.0.1
-      yaml: 2.9.0
+      msgpackr: 2.0.5
 
   ejs@3.1.10:
     dependencies:
@@ -16794,221 +16713,162 @@ snapshots:
 
   expo-application@56.0.3(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
-  expo-asset@56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3):
+  expo-asset@56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3):
     dependencies:
       '@expo/image-utils': 0.10.1(typescript@6.0.3)
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  expo-asset@56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3):
-    dependencies:
-      '@expo/image-utils': 0.10.1(typescript@6.0.3)
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    transitivePeerDependencies:
-      - supports-color
-      - typescript
-    optional: true
-
-  expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-auth-session@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       expo-application: 56.0.3(expo@56.0.12)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-crypto: 56.0.4(expo@56.0.12)
-      expo-linking: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-web-browser: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo-linking: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      expo-web-browser: 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       invariant: 2.2.4
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - expo
       - supports-color
 
-  expo-blur@56.0.3(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-blur@56.0.3(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-build-properties@56.0.19(expo@56.0.12):
     dependencies:
       '@expo/schema-utils': 56.0.1
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       resolve-from: 5.0.0
       semver: 7.8.5
 
-  expo-camera@56.0.8(@types/emscripten@1.41.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-camera@56.0.8(@types/emscripten@1.41.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       barcode-detector: 3.2.0(@types/emscripten@1.41.5)
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - '@types/emscripten'
 
-  expo-clipboard@56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-clipboard@56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  expo-constants@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  expo-constants@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
       '@expo/env': 2.3.0
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - supports-color
 
-  expo-constants@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)):
-    dependencies:
-      '@expo/env': 2.3.0
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    transitivePeerDependencies:
-      - supports-color
-    optional: true
-
   expo-crypto@56.0.4(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
-  expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-dev-launcher: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      expo-dev-menu: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-dev-launcher: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      expo-dev-menu: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-dev-menu-interface: 56.0.1(expo@56.0.12)
       expo-manifests: 56.0.4(expo@56.0.12)
       expo-updates-interface: 56.0.2(expo@56.0.12)
     transitivePeerDependencies:
       - react-native
 
-  expo-dev-launcher@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  expo-dev-launcher@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
       '@expo/schema-utils': 56.0.1
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-dev-menu: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-dev-menu: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       expo-manifests: 56.0.4(expo@56.0.12)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-dev-menu-interface@56.0.1(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
-  expo-dev-menu@56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  expo-dev-menu@56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-dev-menu-interface: 56.0.1(expo@56.0.12)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-eas-client@56.0.1: {}
 
-  expo-file-system@56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
-    dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  expo-file-system@56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)):
-    dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
-
-  expo-font@56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-file-system@56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      fontfaceobserver: 2.3.0
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  expo-font@56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  expo-font@56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       fontfaceobserver: 2.3.0
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  expo-glass-effect@56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-glass-effect@56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  expo-glass-effect@56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
-    dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-haptics@56.0.3(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
   expo-image-loader@56.0.3(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
   expo-image-picker@56.0.18(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-image-loader: 56.0.3(expo@56.0.12)
 
-  expo-image@56.0.11(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-image@56.0.11(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       sf-symbols-typescript: 2.2.0
 
   expo-json-utils@56.0.0: {}
 
-  expo-keep-awake@56.0.3(expo@56.0.12)(react@19.2.3):
+  expo-keep-awake@56.0.3(expo@56.0.12)(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
 
-  expo-keep-awake@56.0.3(expo@56.0.12)(react@19.2.6):
+  expo-linking@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-    optional: true
-
-  expo-linking@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       invariant: 2.2.4
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - expo
       - supports-color
 
-  expo-linking@56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
-    dependencies:
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      invariant: 2.2.4
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    transitivePeerDependencies:
-      - expo
-      - supports-color
-    optional: true
-
   expo-manifests@56.0.4(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-json-utils: 56.0.0
 
   expo-modules-autolinking@56.0.16(typescript@6.0.3):
@@ -17021,163 +16881,96 @@ snapshots:
       - supports-color
       - typescript
 
-  expo-modules-core@56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      '@expo/expo-modules-macros-plugin': 0.2.2
-      expo-modules-jsi: 56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      invariant: 2.2.4
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-    optionalDependencies:
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-
-  expo-modules-core@56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  expo-modules-core@56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@expo/expo-modules-macros-plugin': 0.2.2
-      expo-modules-jsi: 56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
+      expo-modules-jsi: 56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
       invariant: 2.2.4
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     optionalDependencies:
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-    optional: true
+      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
-  expo-modules-jsi@56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  expo-modules-jsi@56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  expo-modules-jsi@56.0.10(patch_hash=9170f8074ae4e35a0a086e756c8f815794fd3abe51eac67ca3ba02804225ec1f)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)):
+  expo-network@56.0.5(expo@56.0.12)(react@19.2.8):
     dependencies:
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
 
-  expo-network@56.0.5(expo@56.0.12)(react@19.2.3):
-    dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-
-  expo-notifications@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3):
+  expo-notifications@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3):
     dependencies:
       '@expo/image-utils': 0.10.1(typescript@6.0.3)
       abort-controller: 3.0.0
       badgin: 1.2.3
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-application: 56.0.3(expo@56.0.12)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  expo-paste-input@0.1.15(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-paste-input@0.1.15(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-quick-actions@6.0.2(expo@56.0.12)(typescript@6.0.3):
     dependencies:
       '@expo/image-utils': 0.8.14(typescript@6.0.3)
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       schema-utils: 4.3.3
       sf-symbols-typescript: 2.2.0
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  expo-router@56.2.11(80beea6a31a5d2003a696c1401258797):
+  expo-router@56.2.11(b48b57e3a89caf041868d51a02ead118):
     dependencies:
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@expo/schema-utils': 56.0.1
-      '@expo/ui': 56.0.18(32843e0c0883df8bccfa0b8323659df5)
-      '@radix-ui/react-slot': 1.2.4(@types/react@19.2.16)(react@19.2.6)
-      '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      '@react-native-masked-view/masked-view': 0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/ui': 56.0.18(8809ac8ddbfcdc4e2ffacd344f03e232)
+      '@radix-ui/react-slot': 1.2.4(@types/react@19.2.16)(react@19.2.8)
+      '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      '@react-native-masked-view/masked-view': 0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@testing-library/jest-dom': 6.9.1
       '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
       client-only: 0.0.1
       color: 4.2.3
       debug: 4.4.3
       escape-string-regexp: 4.0.0
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      expo-glass-effect: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      expo-linking: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      expo-glass-effect: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      expo-linking: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       expo-server: 56.0.5
-      expo-symbols: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      expo-symbols: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       fast-deep-equal: 3.1.3
       invariant: 2.2.4
-      nanoid: 3.3.12
+      nanoid: 3.3.18
       query-string: 7.1.3
-      react: 19.2.6
+      react: 19.2.8
       react-fast-compare: 3.2.2
       react-is: 19.2.7
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      react-native-drawer-layout: 4.2.4(de9b2f2dc96a3557fdc0df187a8417ee)
-      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-native-screens: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-drawer-layout: 4.2.4(93d327c0258d2f838967fc23aa51b0d1)
+      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-screens: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       server-only: 0.0.1
       sf-symbols-typescript: 2.2.0
       shallowequal: 1.1.0
       standard-navigation: 0.0.5
-      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
     optionalDependencies:
-      react-dom: 19.2.6(react@19.2.6)
-      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-    transitivePeerDependencies:
-      - '@babel/core'
-      - '@testing-library/dom'
-      - '@types/react'
-      - '@types/react-dom'
-      - expo-font
-      - react-native-worklets
-      - supports-color
-    optional: true
-
-  expo-router@56.2.11(e1497a99e5bc5be76c1cdb733671f865):
-    dependencies:
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@expo/schema-utils': 56.0.1
-      '@expo/ui': 56.0.18(3cdc0dde9f93166d952f1e1bd0cb25c0)
-      '@radix-ui/react-slot': 1.2.4(@types/react@19.2.16)(react@19.2.3)
-      '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      '@react-native-masked-view/masked-view': 0.3.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@testing-library/jest-dom': 6.9.1
-      '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
-      client-only: 0.0.1
-      color: 4.2.3
-      debug: 4.4.3
-      escape-string-regexp: 4.0.0
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      expo-glass-effect: 56.0.4(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-linking: 56.0.14(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-server: 56.0.5
-      expo-symbols: 56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      fast-deep-equal: 3.1.3
-      invariant: 2.2.4
-      nanoid: 3.3.12
-      query-string: 7.1.3
-      react: 19.2.3
-      react-fast-compare: 3.2.2
-      react-is: 19.2.7
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-drawer-layout: 4.2.4(05364bd849de538917a7364cc7dee3f5)
-      react-native-safe-area-context: 5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-screens: 4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      server-only: 0.0.1
-      sf-symbols-typescript: 2.2.0
-      shallowequal: 1.1.0
-      standard-navigation: 0.0.5
-      vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-    optionalDependencies:
-      react-dom: 19.2.3(react@19.2.3)
-      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react-dom: 19.2.8(react@19.2.8)
+      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
     transitivePeerDependencies:
       - '@babel/core'
       - '@testing-library/dom'
@@ -17190,18 +16983,18 @@ snapshots:
 
   expo-secure-store@56.0.4(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
   expo-server@56.0.5: {}
 
-  expo-sharing@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3):
+  expo-sharing@56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3):
     dependencies:
       '@expo/config-plugins': 56.0.9(typescript@6.0.3)
       '@expo/config-types': 56.0.6
       '@expo/plist': 0.7.0
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -17210,53 +17003,35 @@ snapshots:
     dependencies:
       '@expo/config-plugins': 56.0.9(typescript@6.0.3)
       '@expo/image-utils': 0.10.1(typescript@6.0.3)
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       xml2js: 0.6.0
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       await-lock: 2.2.2
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  expo-sqlite@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
-    dependencies:
-      await-lock: 2.2.2
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
   expo-structured-headers@56.0.0: {}
 
-  expo-symbols@56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-symbols@56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@expo-google-fonts/material-symbols': 0.4.38
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       sf-symbols-typescript: 2.2.0
 
-  expo-symbols@56.0.6(expo-font@56.0.7)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
-    dependencies:
-      '@expo-google-fonts/material-symbols': 0.4.38
-      expo: 56.0.12(deb8cbf3e0f411b34ba85a995c9982ba)
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      sf-symbols-typescript: 2.2.0
-    optional: true
-
   expo-updates-interface@56.0.2(expo@56.0.12):
     dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
 
-  expo-updates@56.0.19(expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  expo-updates@56.0.19(expo-dev-client@56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)))(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@expo/code-signing-certificates': 0.0.6
       '@expo/plist': 0.7.0
@@ -17264,116 +17039,74 @@ snapshots:
       arg: 4.1.3
       chalk: 4.1.2
       debug: 4.4.3
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
       expo-eas-client: 56.0.1
       expo-manifests: 56.0.4(expo@56.0.12)
       expo-structured-headers: 56.0.0
       expo-updates-interface: 56.0.2(expo@56.0.12)
       getenv: 2.0.0
-      glob: 13.0.6
-      ignore: 5.3.2
-      nullthrows: 1.1.1
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      resolve-from: 5.0.0
-    optionalDependencies:
-      expo-dev-client: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-    transitivePeerDependencies:
-      - supports-color
-
-  expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
-    dependencies:
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  expo-widgets@56.0.19(3cdc0dde9f93166d952f1e1bd0cb25c0):
-    dependencies:
-      '@expo/plist': 0.7.0
-      '@expo/ui': 56.0.18(3cdc0dde9f93166d952f1e1bd0cb25c0)
-      expo: 56.0.12(8895228379997a2a064f9644cda56ed0)
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-    transitivePeerDependencies:
-      - '@babel/core'
-      - '@types/react'
-      - '@types/react-dom'
-      - react-dom
-      - react-native-reanimated
-      - react-native-worklets
-
-  expo@56.0.12(8895228379997a2a064f9644cda56ed0):
-    dependencies:
-      '@babel/runtime': 7.29.7
-      '@expo/cli': 56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)(utf-8-validate@6.0.6)
-      '@expo/config': 56.0.9(typescript@6.0.3)
-      '@expo/config-plugins': 56.0.9(typescript@6.0.3)
-      '@expo/devtools': 56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@expo/fingerprint': 0.19.4
-      '@expo/local-build-cache-provider': 56.0.8(typescript@6.0.3)
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@expo/metro': 56.0.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      '@expo/metro-config': 56.0.14(patch_hash=8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46)(bufferutil@4.1.0)(expo@56.0.12)(typescript@6.0.3)(utf-8-validate@6.0.6)
-      '@ungap/structured-clone': 1.3.1
-      babel-preset-expo: 56.0.15(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo-widgets@56.0.19)(expo@56.0.12)(react-refresh@0.14.2)
-      expo-asset: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(typescript@6.0.3)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      expo-file-system: 56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      expo-keep-awake: 56.0.3(expo@56.0.12)(react@19.2.3)
-      expo-modules-autolinking: 56.0.16(typescript@6.0.3)
-      expo-modules-core: 56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      pretty-format: 29.7.0
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-refresh: 0.14.2
-      whatwg-url-minimum: 0.1.2
+      glob: 13.0.6
+      ignore: 5.3.2
+      nullthrows: 1.1.1
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      resolve-from: 5.0.0
     optionalDependencies:
-      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-dom: 19.2.3(react@19.2.3)
-      react-native-webview: 13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      expo-dev-client: 56.0.20(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+    transitivePeerDependencies:
+      - supports-color
+
+  expo-web-browser@56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
+    dependencies:
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+
+  expo-widgets@56.0.19(8809ac8ddbfcdc4e2ffacd344f03e232):
+    dependencies:
+      '@expo/plist': 0.7.0
+      '@expo/ui': 56.0.18(8809ac8ddbfcdc4e2ffacd344f03e232)
+      expo: 56.0.12(7e1ed2071517adbd4e3ee343400ddb7d)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
     transitivePeerDependencies:
       - '@babel/core'
-      - bufferutil
-      - expo-router
-      - expo-widgets
+      - '@types/react'
+      - '@types/react-dom'
+      - react-dom
+      - react-native-reanimated
       - react-native-worklets
-      - react-server-dom-webpack
-      - supports-color
-      - typescript
-      - utf-8-validate
 
-  expo@56.0.12(deb8cbf3e0f411b34ba85a995c9982ba):
+  expo@56.0.12(7e1ed2071517adbd4e3ee343400ddb7d):
     dependencies:
       '@babel/runtime': 7.29.7
-      '@expo/cli': 56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)(utf-8-validate@6.0.6)
+      '@expo/cli': 56.1.16(@expo/dom-webview@56.0.5)(@expo/metro-runtime@56.0.15)(bufferutil@4.1.0)(expo-constants@56.0.18)(expo-font@56.0.7)(expo-router@56.2.11)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)(utf-8-validate@6.0.6)
       '@expo/config': 56.0.9(typescript@6.0.3)
       '@expo/config-plugins': 56.0.9(typescript@6.0.3)
-      '@expo/devtools': 56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/devtools': 56.0.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@expo/fingerprint': 0.19.4
       '@expo/local-build-cache-provider': 56.0.8(typescript@6.0.3)
-      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/log-box': 56.0.13(@expo/dom-webview@56.0.5)(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       '@expo/metro': 56.0.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       '@expo/metro-config': 56.0.14(patch_hash=8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46)(bufferutil@4.1.0)(expo@56.0.12)(typescript@6.0.3)(utf-8-validate@6.0.6)
       '@ungap/structured-clone': 1.3.1
       babel-preset-expo: 56.0.15(@babel/core@7.29.7)(@babel/runtime@7.29.7)(expo-widgets@56.0.19)(expo@56.0.12)(react-refresh@0.14.2)
-      expo-asset: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)(typescript@6.0.3)
-      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      expo-file-system: 56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))
-      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      expo-keep-awake: 56.0.3(expo@56.0.12)(react@19.2.6)
+      expo-asset: 56.0.17(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(typescript@6.0.3)
+      expo-constants: 56.0.18(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      expo-file-system: 56.0.8(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))
+      expo-font: 56.0.7(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      expo-keep-awake: 56.0.3(expo@56.0.12)(react@19.2.8)
       expo-modules-autolinking: 56.0.16(typescript@6.0.3)
-      expo-modules-core: 56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      expo-modules-core: 56.0.17(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       pretty-format: 29.7.0
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       react-refresh: 0.14.2
       whatwg-url-minimum: 0.1.2
     optionalDependencies:
-      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.6(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-dom: 19.2.6(react@19.2.6)
-      react-native-webview: 13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@expo/dom-webview': 56.0.5(expo@56.0.12)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      '@expo/metro-runtime': 56.0.15(@expo/log-box@56.0.13)(expo@56.0.12)(react-dom@19.2.8(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-dom: 19.2.8(react@19.2.8)
+      react-native-webview: 13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
     transitivePeerDependencies:
       - '@babel/core'
       - bufferutil
@@ -17384,7 +17117,6 @@ snapshots:
       - supports-color
       - typescript
       - utf-8-validate
-    optional: true
 
   exponential-backoff@3.1.3: {}
 
@@ -17507,9 +17239,9 @@ snapshots:
     dependencies:
       pend: 1.2.0
 
-  fdir@6.5.0(picomatch@4.0.4):
+  fdir@6.5.0(picomatch@4.0.5):
     optionalDependencies:
-      picomatch: 4.0.4
+      picomatch: 4.0.5
 
   fetch-nodeshim@0.4.10: {}
 
@@ -17560,8 +17292,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  find-my-way-ts@0.1.6: {}
-
   find-up@3.0.0:
     dependencies:
       locate-path: 3.0.0
@@ -17983,9 +17713,7 @@ snapshots:
 
   inherits@2.0.4: {}
 
-  ini@7.0.0: {}
-
-  ink@6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.6)(utf-8-validate@6.0.6):
+  ink@6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.8)(utf-8-validate@6.0.6):
     dependencies:
       '@alcalzone/ansi-tokenize': 0.2.5
       ansi-escapes: 7.3.0
@@ -18000,8 +17728,8 @@ snapshots:
       indent-string: 5.0.0
       is-in-ci: 2.0.0
       patch-console: 2.0.0
-      react: 19.2.6
-      react-reconciler: 0.33.0(react@19.2.6)
+      react: 19.2.8
+      react-reconciler: 0.33.0(react@19.2.8)
       scheduler: 0.27.0
       signal-exit: 3.0.7
       slice-ansi: 8.0.0
@@ -18037,6 +17765,7 @@ snapshots:
       standard-as-callback: 2.1.0
     transitivePeerDependencies:
       - supports-color
+    optional: true
 
   ip-address@10.2.0: {}
 
@@ -18234,8 +17963,6 @@ snapshots:
 
   kleur@4.1.5: {}
 
-  kubernetes-types@1.30.0: {}
-
   lan-network@0.2.1: {}
 
   lazy-val@1.0.5: {}
@@ -18286,6 +18013,9 @@ snapshots:
   lightningcss-android-arm64@1.32.0:
     optional: true
 
+  lightningcss-android-arm64@1.33.0:
+    optional: true
+
   lightningcss-darwin-arm64@1.30.1:
     optional: true
 
@@ -18295,6 +18025,9 @@ snapshots:
   lightningcss-darwin-arm64@1.32.0:
     optional: true
 
+  lightningcss-darwin-arm64@1.33.0:
+    optional: true
+
   lightningcss-darwin-x64@1.30.1:
     optional: true
 
@@ -18304,6 +18037,9 @@ snapshots:
   lightningcss-darwin-x64@1.32.0:
     optional: true
 
+  lightningcss-darwin-x64@1.33.0:
+    optional: true
+
   lightningcss-freebsd-x64@1.30.1:
     optional: true
 
@@ -18313,6 +18049,9 @@ snapshots:
   lightningcss-freebsd-x64@1.32.0:
     optional: true
 
+  lightningcss-freebsd-x64@1.33.0:
+    optional: true
+
   lightningcss-linux-arm-gnueabihf@1.30.1:
     optional: true
 
@@ -18322,6 +18061,9 @@ snapshots:
   lightningcss-linux-arm-gnueabihf@1.32.0:
     optional: true
 
+  lightningcss-linux-arm-gnueabihf@1.33.0:
+    optional: true
+
   lightningcss-linux-arm64-gnu@1.30.1:
     optional: true
 
@@ -18331,6 +18073,9 @@ snapshots:
   lightningcss-linux-arm64-gnu@1.32.0:
     optional: true
 
+  lightningcss-linux-arm64-gnu@1.33.0:
+    optional: true
+
   lightningcss-linux-arm64-musl@1.30.1:
     optional: true
 
@@ -18340,6 +18085,9 @@ snapshots:
   lightningcss-linux-arm64-musl@1.32.0:
     optional: true
 
+  lightningcss-linux-arm64-musl@1.33.0:
+    optional: true
+
   lightningcss-linux-x64-gnu@1.30.1:
     optional: true
 
@@ -18349,6 +18097,9 @@ snapshots:
   lightningcss-linux-x64-gnu@1.32.0:
     optional: true
 
+  lightningcss-linux-x64-gnu@1.33.0:
+    optional: true
+
   lightningcss-linux-x64-musl@1.30.1:
     optional: true
 
@@ -18358,6 +18109,9 @@ snapshots:
   lightningcss-linux-x64-musl@1.32.0:
     optional: true
 
+  lightningcss-linux-x64-musl@1.33.0:
+    optional: true
+
   lightningcss-win32-arm64-msvc@1.30.1:
     optional: true
 
@@ -18367,6 +18121,9 @@ snapshots:
   lightningcss-win32-arm64-msvc@1.32.0:
     optional: true
 
+  lightningcss-win32-arm64-msvc@1.33.0:
+    optional: true
+
   lightningcss-win32-x64-msvc@1.30.1:
     optional: true
 
@@ -18376,6 +18133,9 @@ snapshots:
   lightningcss-win32-x64-msvc@1.32.0:
     optional: true
 
+  lightningcss-win32-x64-msvc@1.33.0:
+    optional: true
+
   lightningcss@1.30.1:
     dependencies:
       detect-libc: 2.1.2
@@ -18423,6 +18183,22 @@ snapshots:
       lightningcss-win32-arm64-msvc: 1.32.0
       lightningcss-win32-x64-msvc: 1.32.0
 
+  lightningcss@1.33.0:
+    dependencies:
+      detect-libc: 2.1.2
+    optionalDependencies:
+      lightningcss-android-arm64: 1.33.0
+      lightningcss-darwin-arm64: 1.33.0
+      lightningcss-darwin-x64: 1.33.0
+      lightningcss-freebsd-x64: 1.33.0
+      lightningcss-linux-arm-gnueabihf: 1.33.0
+      lightningcss-linux-arm64-gnu: 1.33.0
+      lightningcss-linux-arm64-musl: 1.33.0
+      lightningcss-linux-x64-gnu: 1.33.0
+      lightningcss-linux-x64-musl: 1.33.0
+      lightningcss-win32-arm64-msvc: 1.33.0
+      lightningcss-win32-x64-msvc: 1.33.0
+
   locate-path@3.0.0:
     dependencies:
       p-locate: 3.0.0
@@ -18473,9 +18249,9 @@ snapshots:
 
   lru_map@0.4.1: {}
 
-  lucide-react@0.564.0(react@19.2.6):
+  lucide-react@0.564.0(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
 
   lz-string@1.5.0: {}
 
@@ -19150,7 +18926,7 @@ snapshots:
       '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.4
       '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.4
 
-  msgpackr@2.0.4:
+  msgpackr@2.0.5:
     optionalDependencies:
       msgpackr-extract: 3.0.4
 
@@ -19181,8 +18957,6 @@ snapshots:
 
   muggle-string@0.4.1: {}
 
-  multipasta@0.2.8: {}
-
   multitars@1.0.0: {}
 
   mute-stream@2.0.0: {}
@@ -19205,6 +18979,8 @@ snapshots:
 
   nanoid@3.3.12: {}
 
+  nanoid@3.3.18: {}
+
   negotiator@0.6.3: {}
 
   negotiator@0.6.4: {}
@@ -19564,9 +19340,9 @@ snapshots:
 
   pg-connection-string@2.14.0: {}
 
-  pg-cursor@2.21.0(pg@8.22.0):
+  pg-cursor@2.22.0(pg@8.23.0):
     dependencies:
-      pg: 8.22.0
+      pg: 8.23.0
 
   pg-int8@1.0.1: {}
 
@@ -19576,13 +19352,13 @@ snapshots:
     dependencies:
       pg: 8.21.0
 
-  pg-pool@3.14.0(pg@8.22.0):
+  pg-pool@3.14.0(pg@8.23.0):
     dependencies:
-      pg: 8.22.0
+      pg: 8.23.0
 
   pg-protocol@1.14.0: {}
 
-  pg-protocol@1.15.0: {}
+  pg-protocol@1.16.0: {}
 
   pg-types@2.2.0:
     dependencies:
@@ -19612,11 +19388,11 @@ snapshots:
     optionalDependencies:
       pg-cloudflare: 1.4.0
 
-  pg@8.22.0:
+  pg@8.23.0:
     dependencies:
       pg-connection-string: 2.14.0
-      pg-pool: 3.14.0(pg@8.22.0)
-      pg-protocol: 1.15.0
+      pg-pool: 3.14.0(pg@8.23.0)
+      pg-protocol: 1.16.0
       pg-types: 2.2.0
       pgpass: 1.0.5
     optionalDependencies:
@@ -19634,6 +19410,8 @@ snapshots:
 
   picomatch@4.0.4: {}
 
+  picomatch@4.0.5: {}
+
   pkce-challenge@5.0.1: {}
 
   pkg-up@3.1.0:
@@ -19673,6 +19451,12 @@ snapshots:
       picocolors: 1.1.1
       source-map-js: 1.2.1
 
+  postcss@8.5.26:
+    dependencies:
+      nanoid: 3.3.18
+      picocolors: 1.1.1
+      source-map-js: 1.2.1
+
   postgres-array@2.0.0: {}
 
   postgres-array@3.0.4: {}
@@ -19819,38 +19603,28 @@ snapshots:
       - bufferutil
       - utf-8-validate
 
-  react-dom@19.2.3(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      scheduler: 0.27.0
-
-  react-dom@19.2.6(react@19.2.6):
+  react-dom@19.2.8(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
       scheduler: 0.27.0
 
-  react-error-boundary@6.1.2(react@19.2.6):
+  react-error-boundary@6.1.2(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
 
   react-fast-compare@3.2.2:
     optional: true
 
-  react-freeze@1.0.4(react@19.2.3):
+  react-freeze@1.0.4(react@19.2.8):
     dependencies:
-      react: 19.2.3
+      react: 19.2.8
 
-  react-freeze@1.0.4(react@19.2.6):
-    dependencies:
-      react: 19.2.6
-    optional: true
-
-  react-grab@0.1.44(react@19.2.6):
+  react-grab@0.1.44(react@19.2.8):
     dependencies:
       '@react-grab/cli': 0.1.44
-      bippy: 0.5.41(react@19.2.6)
+      bippy: 0.5.41(react@19.2.8)
     optionalDependencies:
-      react: 19.2.6
+      react: 19.2.8
 
   react-is@16.13.1: {}
 
@@ -19860,7 +19634,7 @@ snapshots:
 
   react-is@19.2.7: {}
 
-  react-markdown@10.1.0(@types/react@19.2.16)(react@19.2.6):
+  react-markdown@10.1.0(@types/react@19.2.16)(react@19.2.8):
     dependencies:
       '@types/hast': 3.0.4
       '@types/mdast': 4.0.4
@@ -19869,7 +19643,7 @@ snapshots:
       hast-util-to-jsx-runtime: 2.3.6
       html-url-attributes: 3.0.1
       mdast-util-to-hast: 13.2.1
-      react: 19.2.6
+      react: 19.2.8
       remark-parse: 11.0.0
       remark-rehype: 11.1.2
       unified: 11.0.5
@@ -19878,179 +19652,102 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  react-native-drawer-layout@4.2.4(05364bd849de538917a7364cc7dee3f5):
-    dependencies:
-      color: 4.2.3
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      use-latest-callback: 0.2.6(react@19.2.3)
-    optional: true
-
-  react-native-drawer-layout@4.2.4(de9b2f2dc96a3557fdc0df187a8417ee):
+  react-native-drawer-layout@4.2.4(93d327c0258d2f838967fc23aa51b0d1):
     dependencies:
       color: 4.2.3
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      use-latest-callback: 0.2.6(react@19.2.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-gesture-handler: 2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      use-latest-callback: 0.2.6(react@19.2.8)
     optional: true
 
-  react-native-gesture-handler@2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      '@egjs/hammerjs': 2.0.17
-      '@types/react-test-renderer': 19.1.0
-      hoist-non-react-statics: 3.3.2
-      invariant: 2.2.4
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  react-native-gesture-handler@2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-gesture-handler@2.31.2(patch_hash=808eb26f9e57cf4945efd3985af4d9c764da6f91f4c9764433cc868602bbf4d3)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@egjs/hammerjs': 2.0.17
       '@types/react-test-renderer': 19.1.0
       hoist-non-react-statics: 3.3.2
       invariant: 2.2.4
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
-
-  react-native-image-viewing@0.2.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-is-edge-to-edge@1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-image-viewing@0.2.2(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-is-edge-to-edge@1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-is-edge-to-edge@1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-keyboard-controller@1.21.13(patch_hash=20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008)(react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-keyboard-controller@1.21.13(patch_hash=20be72c84d74253acdcfefbc6defe36dc396944f1a44cab2bdd0e3cd572ae008)(react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-is-edge-to-edge: 1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-is-edge-to-edge: 1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-reanimated: 4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
-  react-native-nitro-markdown@0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-nitro-markdown@0.5.8(react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-nitro-modules: 0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-nitro-modules: 0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
     optionalDependencies:
-      react-native-svg: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-
-  react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react-native-svg: 15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
 
-  react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-nitro-modules@0.35.9(patch_hash=825622aae63a8fb5b904f3c77908a0e216261d727ea171709f2c0b6088422675)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      react-native-is-edge-to-edge: 1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      semver: 7.8.5
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-reanimated@4.3.1(react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      react-native-is-edge-to-edge: 1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
-      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
+      react-native-is-edge-to-edge: 1.3.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
+      react-native-worklets: 0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       semver: 7.8.5
-    optional: true
-
-  react-native-safe-area-context@5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  react-native-safe-area-context@5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
-    dependencies:
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
 
-  react-native-screens@4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-safe-area-context@5.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.3
-      react-freeze: 1.0.4(react@19.2.3)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      warn-once: 0.1.1
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-screens@4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-screens@4.25.2(patch_hash=59bfd7b84af01708b6e581c4ccdd5ecf05f8b205383802d66b64ed7ea7bb2199)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
-      react: 19.2.6
-      react-freeze: 1.0.4(react@19.2.6)
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-freeze: 1.0.4(react@19.2.8)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       warn-once: 0.1.1
-    optional: true
 
-  react-native-shiki-engine@0.3.12(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-shiki-engine@0.3.12(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@shikijs/types': 4.3.0
       '@shikijs/vscode-textmate': 10.0.2
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
+  react-native-svg@15.15.4(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       css-select: 5.2.2
       css-tree: 1.1.3
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       warn-once: 0.1.1
 
-  react-native-url-polyfill@4.0.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)):
+  react-native-url-polyfill@4.0.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)):
     dependencies:
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-
-  react-native-webview@13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      escape-string-regexp: 4.0.0
-      invariant: 2.2.4
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-webview@13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-webview@13.16.1(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       escape-string-regexp: 4.0.0
       invariant: 2.2.4
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-    optional: true
-
-  react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3):
-    dependencies:
-      '@babel/core': 7.29.7
-      '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7)
-      '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7)
-      '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7)
-      '@react-native/metro-config': 0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      convert-source-map: 2.0.0
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
-      semver: 7.8.5
-    transitivePeerDependencies:
-      - supports-color
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
 
-  react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6):
+  react-native-worklets@0.8.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8):
     dependencies:
       '@babel/core': 7.29.7
       '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7)
@@ -20064,59 +19761,13 @@ snapshots:
       '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7)
       '@react-native/metro-config': 0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       convert-source-map: 2.0.0
-      react: 19.2.6
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6)
-      semver: 7.8.5
-    transitivePeerDependencies:
-      - supports-color
-    optional: true
-
-  react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6):
-    dependencies:
-      '@react-native/assets-registry': 0.85.3
-      '@react-native/codegen': 0.85.3(@babel/core@7.29.7)
-      '@react-native/community-cli-plugin': 0.85.3(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      '@react-native/gradle-plugin': 0.85.3(patch_hash=c1b594a16e682d621b6a960926f8ce13fc92edfb397884cfe7fcb0518996a784)
-      '@react-native/js-polyfills': 0.85.3
-      '@react-native/normalize-colors': 0.85.3
-      '@react-native/virtualized-lists': 0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)
-      abort-controller: 3.0.0
-      anser: 1.4.10
-      ansi-regex: 5.0.1
-      babel-plugin-syntax-hermes-parser: 0.33.3
-      base64-js: 1.5.1
-      commander: 12.1.0
-      flow-enums-runtime: 0.0.6
-      hermes-compiler: 250829098.0.10
-      invariant: 2.2.4
-      memoize-one: 5.2.1
-      metro-runtime: 0.84.4
-      metro-source-map: 0.84.4
-      nullthrows: 1.1.1
-      pretty-format: 29.7.0
-      promise: 8.3.0
-      react: 19.2.3
-      react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      react-refresh: 0.14.2
-      regenerator-runtime: 0.13.11
-      scheduler: 0.27.0
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       semver: 7.8.5
-      stacktrace-parser: 0.1.11
-      tinyglobby: 0.2.17
-      whatwg-fetch: 3.6.20
-      ws: 7.5.11(bufferutil@4.1.0)(utf-8-validate@6.0.6)
-      yargs: 17.7.2
-    optionalDependencies:
-      '@types/react': 19.2.16
     transitivePeerDependencies:
-      - '@babel/core'
-      - '@react-native-community/cli'
-      - '@react-native/metro-config'
-      - bufferutil
       - supports-color
-      - utf-8-validate
 
-  react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6):
+  react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6):
     dependencies:
       '@react-native/assets-registry': 0.85.3
       '@react-native/codegen': 0.85.3(@babel/core@7.29.7)
@@ -20124,7 +19775,7 @@ snapshots:
       '@react-native/gradle-plugin': 0.85.3(patch_hash=c1b594a16e682d621b6a960926f8ce13fc92edfb397884cfe7fcb0518996a784)
       '@react-native/js-polyfills': 0.85.3
       '@react-native/normalize-colors': 0.85.3
-      '@react-native/virtualized-lists': 0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.6)(utf-8-validate@6.0.6))(react@19.2.6)
+      '@react-native/virtualized-lists': 0.85.3(@types/react@19.2.16)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)
       abort-controller: 3.0.0
       anser: 1.4.10
       ansi-regex: 5.0.1
@@ -20140,7 +19791,7 @@ snapshots:
       nullthrows: 1.1.1
       pretty-format: 29.7.0
       promise: 8.3.0
-      react: 19.2.6
+      react: 19.2.8
       react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)
       react-refresh: 0.14.2
       regenerator-runtime: 0.13.11
@@ -20160,75 +19811,42 @@ snapshots:
       - bufferutil
       - supports-color
       - utf-8-validate
-    optional: true
 
-  react-reconciler@0.33.0(react@19.2.6):
+  react-reconciler@0.33.0(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
       scheduler: 0.27.0
 
   react-refresh@0.14.2: {}
 
-  react-remove-scroll-bar@2.3.8(@types/react@19.2.16)(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.3)
-      tslib: 2.8.1
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  react-remove-scroll-bar@2.3.8(@types/react@19.2.16)(react@19.2.6):
-    dependencies:
-      react: 19.2.6
-      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.6)
-      tslib: 2.8.1
-    optionalDependencies:
-      '@types/react': 19.2.16
-    optional: true
-
-  react-remove-scroll@2.7.2(@types/react@19.2.16)(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      react-remove-scroll-bar: 2.3.8(@types/react@19.2.16)(react@19.2.3)
-      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.3)
-      tslib: 2.8.1
-      use-callback-ref: 1.3.3(@types/react@19.2.16)(react@19.2.3)
-      use-sidecar: 1.1.3(@types/react@19.2.16)(react@19.2.3)
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  react-remove-scroll@2.7.2(@types/react@19.2.16)(react@19.2.6):
+  react-remove-scroll-bar@2.3.8(@types/react@19.2.16)(react@19.2.8):
     dependencies:
-      react: 19.2.6
-      react-remove-scroll-bar: 2.3.8(@types/react@19.2.16)(react@19.2.6)
-      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.6)
+      react: 19.2.8
+      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.8)
       tslib: 2.8.1
-      use-callback-ref: 1.3.3(@types/react@19.2.16)(react@19.2.6)
-      use-sidecar: 1.1.3(@types/react@19.2.16)(react@19.2.6)
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
 
-  react-style-singleton@2.2.3(@types/react@19.2.16)(react@19.2.3):
+  react-remove-scroll@2.7.2(@types/react@19.2.16)(react@19.2.8):
     dependencies:
-      get-nonce: 1.0.1
-      react: 19.2.3
+      react: 19.2.8
+      react-remove-scroll-bar: 2.3.8(@types/react@19.2.16)(react@19.2.8)
+      react-style-singleton: 2.2.3(@types/react@19.2.16)(react@19.2.8)
       tslib: 2.8.1
+      use-callback-ref: 1.3.3(@types/react@19.2.16)(react@19.2.8)
+      use-sidecar: 1.1.3(@types/react@19.2.16)(react@19.2.8)
     optionalDependencies:
       '@types/react': 19.2.16
 
-  react-style-singleton@2.2.3(@types/react@19.2.16)(react@19.2.6):
+  react-style-singleton@2.2.3(@types/react@19.2.16)(react@19.2.8):
     dependencies:
       get-nonce: 1.0.1
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
-
-  react@19.2.3: {}
 
-  react@19.2.6: {}
+  react@19.2.8: {}
 
   read-binary-file-arch@1.0.6:
     dependencies:
@@ -20256,11 +19874,24 @@ snapshots:
       strip-indent: 3.0.0
     optional: true
 
-  redis-errors@1.2.0: {}
+  redis-errors@1.2.0:
+    optional: true
 
   redis-parser@3.0.0:
     dependencies:
       redis-errors: 1.2.0
+    optional: true
+
+  redis@6.2.1:
+    dependencies:
+      '@redis/bloom': 6.2.1(@redis/client@6.2.1)
+      '@redis/client': 6.2.1
+      '@redis/json': 6.2.1(@redis/client@6.2.1)
+      '@redis/search': 6.2.1(@redis/client@6.2.1)
+      '@redis/time-series': 6.2.1(@redis/client@6.2.1)
+    transitivePeerDependencies:
+      - '@node-rs/xxhash'
+      - '@opentelemetry/api'
 
   reftools@1.1.9: {}
 
@@ -20514,6 +20145,26 @@ snapshots:
       '@rolldown/binding-win32-arm64-msvc': 1.1.5
       '@rolldown/binding-win32-x64-msvc': 1.1.5
 
+  rolldown@1.2.4:
+    dependencies:
+      '@oxc-project/types': 0.144.0
+      '@rolldown/pluginutils': 1.0.1
+    optionalDependencies:
+      '@rolldown/binding-android-arm64': 1.2.4
+      '@rolldown/binding-darwin-arm64': 1.2.4
+      '@rolldown/binding-darwin-x64': 1.2.4
+      '@rolldown/binding-freebsd-x64': 1.2.4
+      '@rolldown/binding-linux-arm-gnueabihf': 1.2.4
+      '@rolldown/binding-linux-arm64-gnu': 1.2.4
+      '@rolldown/binding-linux-arm64-musl': 1.2.4
+      '@rolldown/binding-linux-ppc64-gnu': 1.2.4
+      '@rolldown/binding-linux-s390x-gnu': 1.2.4
+      '@rolldown/binding-linux-x64-gnu': 1.2.4
+      '@rolldown/binding-linux-x64-musl': 1.2.4
+      '@rolldown/binding-openharmony-arm64': 1.2.4
+      '@rolldown/binding-win32-arm64-msvc': 1.2.4
+      '@rolldown/binding-win32-x64-msvc': 1.2.4
+
   rollup@4.61.0:
     dependencies:
       '@types/estree': 1.0.9
@@ -20866,7 +20517,8 @@ snapshots:
     dependencies:
       type-fest: 0.7.1
 
-  standard-as-callback@2.1.0: {}
+  standard-as-callback@2.1.0:
+    optional: true
 
   standard-navigation@0.0.5:
     optional: true
@@ -21064,8 +20716,8 @@ snapshots:
 
   tinyglobby@0.2.17:
     dependencies:
-      fdir: 6.5.0(picomatch@4.0.4)
-      picomatch: 4.0.4
+      fdir: 6.5.0(picomatch@4.0.5)
+      picomatch: 4.0.5
 
   tinypool@2.1.0: {}
 
@@ -21091,8 +20743,6 @@ snapshots:
 
   toidentifier@1.0.1: {}
 
-  toml@4.3.0: {}
-
   toqr@0.1.1: {}
 
   totalist@3.0.1: {}
@@ -21158,7 +20808,7 @@ snapshots:
 
   undici@7.27.1: {}
 
-  undici@8.9.0: {}
+  undici@8.10.0: {}
 
   unenv@2.0.0-rc.24:
     dependencies:
@@ -21243,14 +20893,14 @@ snapshots:
 
   universalify@2.0.1: {}
 
-  uniwind@1.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3)(tailwindcss@4.3.0):
+  uniwind@1.7.0(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6))(react@19.2.8)(tailwindcss@4.3.0):
     dependencies:
       '@tailwindcss/node': 4.2.1
       '@tailwindcss/oxide': 4.2.1
       culori: 4.0.2
       lightningcss: 1.30.1
-      react: 19.2.3
-      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6)
+      react: 19.2.8
+      react-native: 0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.8)(utf-8-validate@6.0.6)
       tailwindcss: 4.3.0
 
   unpipe@1.0.0: {}
@@ -21302,54 +20952,28 @@ snapshots:
       punycode: 2.3.1
     optional: true
 
-  use-callback-ref@1.3.3(@types/react@19.2.16)(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-      tslib: 2.8.1
-    optionalDependencies:
-      '@types/react': 19.2.16
-
-  use-callback-ref@1.3.3(@types/react@19.2.16)(react@19.2.6):
+  use-callback-ref@1.3.3(@types/react@19.2.16)(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
-
-  use-latest-callback@0.2.6(react@19.2.3):
-    dependencies:
-      react: 19.2.3
-
-  use-latest-callback@0.2.6(react@19.2.6):
-    dependencies:
-      react: 19.2.6
-    optional: true
 
-  use-sidecar@1.1.3(@types/react@19.2.16)(react@19.2.3):
+  use-latest-callback@0.2.6(react@19.2.8):
     dependencies:
-      detect-node-es: 1.1.0
-      react: 19.2.3
-      tslib: 2.8.1
-    optionalDependencies:
-      '@types/react': 19.2.16
+      react: 19.2.8
 
-  use-sidecar@1.1.3(@types/react@19.2.16)(react@19.2.6):
+  use-sidecar@1.1.3(@types/react@19.2.16)(react@19.2.8):
     dependencies:
       detect-node-es: 1.1.0
-      react: 19.2.6
+      react: 19.2.8
       tslib: 2.8.1
     optionalDependencies:
       '@types/react': 19.2.16
-    optional: true
-
-  use-sync-external-store@1.6.0(react@19.2.3):
-    dependencies:
-      react: 19.2.3
 
-  use-sync-external-store@1.6.0(react@19.2.6):
+  use-sync-external-store@1.6.0(react@19.2.8):
     dependencies:
-      react: 19.2.6
+      react: 19.2.8
 
   utf-8-validate@6.0.6:
     dependencies:
@@ -21362,32 +20986,20 @@ snapshots:
 
   utils-merge@1.0.1: {}
 
-  uuid@14.0.1: {}
-
   uuid@7.0.3: {}
 
   validate-npm-package-name@5.0.1: {}
 
   vary@1.1.2: {}
 
-  vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
-    dependencies:
-      '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
-      react: 19.2.3
-      react-dom: 19.2.3(react@19.2.3)
-    transitivePeerDependencies:
-      - '@types/react'
-      - '@types/react-dom'
-
-  vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
+  vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
     dependencies:
-      '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
-      react: 19.2.6
-      react-dom: 19.2.6(react@19.2.6)
+      '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.16))(@types/react@19.2.16)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+      react: 19.2.8
+      react-dom: 19.2.8(react@19.2.8)
     transitivePeerDependencies:
       - '@types/react'
       - '@types/react-dom'
-    optional: true
 
   vfile-location@5.0.3:
     dependencies:
@@ -21462,6 +21074,21 @@ snapshots:
       - utf-8-validate
       - yaml
 
+  vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0):
+    dependencies:
+      lightningcss: 1.33.0
+      picomatch: 4.0.5
+      postcss: 8.5.26
+      rolldown: 1.2.4
+      tinyglobby: 0.2.17
+    optionalDependencies:
+      '@types/node': 24.12.4
+      esbuild: 0.28.1
+      fsevents: 2.3.3
+      jiti: 2.7.0
+      terser: 5.48.0
+      yaml: 2.9.0
+
   vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)):
     optionalDependencies:
       vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)'
@@ -21480,7 +21107,7 @@ snapshots:
       magic-string: 0.30.21
       obug: 2.1.3
       pathe: 2.0.3
-      picomatch: 4.0.4
+      picomatch: 4.0.5
       std-env: 4.1.0
       tinybench: 2.9.0
       tinyexec: 1.2.4
@@ -21494,6 +21121,34 @@ snapshots:
     transitivePeerDependencies:
       - msw
 
+  vitest@4.1.9(@types/node@24.12.4)(@vitest/browser-preview@4.1.9)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)):
+    dependencies:
+      '@vitest/expect': 4.1.9
+      '@vitest/mocker': 4.1.9(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))
+      '@vitest/pretty-format': 4.1.9
+      '@vitest/runner': 4.1.9
+      '@vitest/snapshot': 4.1.9
+      '@vitest/spy': 4.1.9
+      '@vitest/utils': 4.1.9
+      es-module-lexer: 2.1.0
+      expect-type: 1.4.0
+      magic-string: 0.30.21
+      obug: 2.1.3
+      pathe: 2.0.3
+      picomatch: 4.0.5
+      std-env: 4.1.0
+      tinybench: 2.9.0
+      tinyexec: 1.2.4
+      tinyglobby: 0.2.17
+      tinyrainbow: 3.1.0
+      vite: 8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)
+      why-is-node-running: 2.3.0
+    optionalDependencies:
+      '@types/node': 24.12.4
+      '@vitest/browser-preview': 4.1.9(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(utf-8-validate@6.0.6)(vite@8.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@4.1.9)
+    transitivePeerDependencies:
+      - msw
+
   vlq@1.0.1: {}
 
   volar-service-css@0.0.70(@volar/language-service@2.4.28):
@@ -21694,6 +21349,11 @@ snapshots:
       bufferutil: 4.1.0
       utf-8-validate: 6.0.6
 
+  ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6):
+    optionalDependencies:
+      bufferutil: 4.1.0
+      utf-8-validate: 6.0.6
+
   xcode@3.0.1:
     dependencies:
       simple-plist: 1.3.1
@@ -21779,11 +21439,11 @@ snapshots:
 
   zod@4.4.3: {}
 
-  zustand@5.0.14(@types/react@19.2.16)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)):
+  zustand@5.0.14(@types/react@19.2.16)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)):
     optionalDependencies:
       '@types/react': 19.2.16
-      react: 19.2.6
-      use-sync-external-store: 1.6.0(react@19.2.6)
+      react: 19.2.8
+      use-sync-external-store: 1.6.0(react@19.2.8)
 
   zwitch@2.0.4: {}
 
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index f7d41b694ad8..507709b940e6 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -30,22 +30,22 @@ catalog:
   "@clerk/expo": 4.2.0
   "@clerk/react": 6.14.4
   "@clerk/shared": 4.29.2
-  "@effect/atom-react": 4.0.0-beta.103
-  "@effect/openapi-generator": 4.0.0-beta.103
-  "@effect/platform-bun": 4.0.0-beta.103
-  "@effect/platform-node": 4.0.0-beta.103
-  "@effect/platform-node-shared": 4.0.0-beta.103
-  "@effect/sql-pg": 4.0.0-beta.103
-  "@effect/sql-sqlite-bun": 4.0.0-beta.103
+  "@effect/atom-react": 4.0.0-rc.111
+  "@effect/openapi-generator": 4.0.0-rc.111
+  "@effect/platform-bun": 4.0.0-rc.111
+  "@effect/platform-node": 4.0.0-rc.111
+  "@effect/platform-node-shared": 4.0.0-rc.111
+  "@effect/sql-pg": 4.0.0-rc.111
+  "@effect/sql-sqlite-bun": 4.0.0-rc.111
   "@effect/tsgo": 0.13.2
-  "@effect/vitest": 4.0.0-beta.103
+  "@effect/vitest": 4.0.0-rc.111
   "@legendapp/list": 3.3.5
   "@noble/curves": 1.9.1
   "@noble/hashes": 1.8.0
   "@pierre/diffs": 1.3.0-beta.10
   "@types/node": 24.12.4
   "@typescript/native-preview": 7.0.0-dev.20260604.1
-  effect: 4.0.0-beta.103
+  effect: 4.0.0-rc.111
   jose: 6.2.2
   typescript: ~6.0.3
   vite: npm:@voidzero-dev/vite-plus-core@0.2.2
@@ -65,16 +65,16 @@ minimumReleaseAgeExclude:
   - "@distilled.cloud/core@0.30.2"
   - "@distilled.cloud/neon@0.30.2"
   - "@distilled.cloud/planetscale@0.30.2"
-  - "@effect/atom-react@4.0.0-beta.103"
-  - "@effect/openapi-generator@4.0.0-beta.103"
-  - "@effect/platform-bun@4.0.0-beta.103"
-  - "@effect/platform-node-shared@4.0.0-beta.103"
-  - "@effect/platform-node@4.0.0-beta.103"
-  - "@effect/sql-pg@4.0.0-beta.103"
-  - "@effect/sql-sqlite-bun@4.0.0-beta.103"
-  - "@effect/vitest@4.0.0-beta.103"
+  - "@effect/atom-react@4.0.0-rc.111"
+  - "@effect/openapi-generator@4.0.0-rc.111"
+  - "@effect/platform-bun@4.0.0-rc.111"
+  - "@effect/platform-node-shared@4.0.0-rc.111"
+  - "@effect/platform-node@4.0.0-rc.111"
+  - "@effect/sql-pg@4.0.0-rc.111"
+  - "@effect/sql-sqlite-bun@4.0.0-rc.111"
+  - "@effect/vitest@4.0.0-rc.111"
   - alchemy@2.0.0-beta.65
-  - effect@4.0.0-beta.103
+  - effect@4.0.0-rc.111
   - "@legendapp/list@3.3.5"
 
 overrides:
@@ -98,7 +98,6 @@ overrides:
   "@effect/sql-pg": "catalog:"
   "@effect/sql-sqlite-bun": "catalog:"
   "@effect/vitest": "catalog:"
-  "@effect/vitest>vitest": "-"
   "@expo/metro-config": 56.0.14
   "@pierre/diffs>@shikijs/transformers": ^4.2.0
   "@types/node": "catalog:"
@@ -113,19 +112,12 @@ packageExtensions:
   "@clerk/expo@*":
     dependencies:
       "@expo/config-plugins": 56.0.9
-  "@effect/vitest@*":
-    dependencies:
-      vite-plus: "catalog:"
-    peerDependenciesMeta:
-      vitest:
-        optional: true
   vite-plus@*:
     dependencies:
       vite: "catalog:"
 
 patchedDependencies:
   "@clerk/expo@4.2.0": patches/@clerk__expo@4.2.0.patch
-  "@effect/vitest@4.0.0-beta.103": patches/@effect__vitest@4.0.0-beta.103.patch
   "@expo/metro-config@56.0.14": patches/@expo%2Fmetro-config@56.0.14.patch
   "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch
   "@legendapp/list@3.3.5": patches/@legendapp__list@3.3.5.patch
@@ -133,7 +125,7 @@ patchedDependencies:
   "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch
   "@react-native/gradle-plugin@0.85.3": patches/@react-native__gradle-plugin@0.85.3.patch
   "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch
-  effect@4.0.0-beta.103: patches/effect@4.0.0-beta.103.patch
+  effect@4.0.0-rc.111: patches/effect@4.0.0-rc.111.patch
   expo-modules-jsi@56.0.10: patches/expo-modules-jsi@56.0.10.patch
   react-native-gesture-handler@2.31.2: patches/react-native-gesture-handler@2.31.2.patch
   react-native-keyboard-controller@1.21.13: patches/react-native-keyboard-controller@1.21.13.patch
diff --git a/scripts/announce-connect-ga.ts b/scripts/announce-connect-ga.ts
index 88a4db56cc72..8d6e9a7eab1f 100644
--- a/scripts/announce-connect-ga.ts
+++ b/scripts/announce-connect-ga.ts
@@ -37,7 +37,7 @@ export interface ConnectGaOptions {
   readonly limit: number | undefined;
 }
 
-export class ConnectGaRequestError extends Schema.TaggedErrorClass()(
+export class ConnectGaRequestError extends Schema.TaggedError()(
   "ConnectGaRequestError",
   {
     operation: Schema.String,
@@ -49,7 +49,7 @@ export class ConnectGaRequestError extends Schema.TaggedErrorClass()(
+export class ConnectGaResponseError extends Schema.TaggedError()(
   "ConnectGaResponseError",
   {
     operation: Schema.String,
diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts
index bf36029bc75b..375b12f0ebf8 100644
--- a/scripts/build-desktop-artifact.ts
+++ b/scripts/build-desktop-artifact.ts
@@ -180,7 +180,7 @@ const getDefaultArch = Effect.fn("getDefaultArch")(function* (platform: typeof B
   return yield* getDefaultBuildArch(platform, config);
 });
 
-export class MacPasskeySigningConfigurationResolutionError extends Schema.TaggedErrorClass()(
+export class MacPasskeySigningConfigurationResolutionError extends Schema.TaggedError()(
   "MacPasskeySigningConfigurationResolutionError",
   {
     cause: Schema.Defect(),
@@ -199,7 +199,7 @@ export class MacPasskeySigningConfigurationResolutionError extends Schema.Tagged
   }
 }
 
-export class ClerkPasskeyNativePackageMissingError extends Schema.TaggedErrorClass()(
+export class ClerkPasskeyNativePackageMissingError extends Schema.TaggedError()(
   "ClerkPasskeyNativePackageMissingError",
   {
     packageName: Schema.String,
@@ -215,7 +215,7 @@ export class ClerkPasskeyNativePackageMissingError extends Schema.TaggedErrorCla
   }
 }
 
-export class UnsupportedHostBuildPlatformError extends Schema.TaggedErrorClass()(
+export class UnsupportedHostBuildPlatformError extends Schema.TaggedError()(
   "UnsupportedHostBuildPlatformError",
   {
     hostPlatform: Schema.String,
@@ -226,7 +226,7 @@ export class UnsupportedHostBuildPlatformError extends Schema.TaggedErrorClass()(
+export class UnsupportedDesktopBuildArchitectureError extends Schema.TaggedError()(
   "UnsupportedDesktopBuildArchitectureError",
   {
     platform: BuildPlatform,
@@ -245,7 +245,7 @@ const InvalidMockUpdateServerPortReason = Schema.Literals([
   "out-of-range",
 ]);
 
-export class InvalidMockUpdateServerPortError extends Schema.TaggedErrorClass()(
+export class InvalidMockUpdateServerPortError extends Schema.TaggedError()(
   "InvalidMockUpdateServerPortError",
   {
     reason: InvalidMockUpdateServerPortReason,
@@ -266,7 +266,7 @@ export class InvalidMockUpdateServerPortError extends Schema.TaggedErrorClass()(
+export class BuildCommandFailedError extends Schema.TaggedError()(
   "BuildCommandFailedError",
   {
     command: Schema.String,
@@ -286,7 +286,7 @@ export class BuildCommandFailedError extends Schema.TaggedErrorClass()(
+export class ResourceMonitorBuildOutputMissingError extends Schema.TaggedError()(
   "ResourceMonitorBuildOutputMissingError",
   {
     binaryPath: Schema.String,
@@ -306,7 +306,7 @@ const desktopIconPlatformNames = {
   win: "Windows",
 } satisfies Record;
 
-export class DesktopIconSourceMissingError extends Schema.TaggedErrorClass()(
+export class DesktopIconSourceMissingError extends Schema.TaggedError()(
   "DesktopIconSourceMissingError",
   {
     platform: BuildPlatform,
@@ -318,7 +318,7 @@ export class DesktopIconSourceMissingError extends Schema.TaggedErrorClass()(
+export class DesktopDmgBackgroundSourceMissingError extends Schema.TaggedError()(
   "DesktopDmgBackgroundSourceMissingError",
   {
     channel: Schema.Literals(["latest", "nightly"]),
@@ -330,7 +330,7 @@ export class DesktopDmgBackgroundSourceMissingError extends Schema.TaggedErrorCl
   }
 }
 
-export class BundledClientAssetsMissingError extends Schema.TaggedErrorClass()(
+export class BundledClientAssetsMissingError extends Schema.TaggedError()(
   "BundledClientAssetsMissingError",
   {
     indexPath: Schema.String,
@@ -344,7 +344,7 @@ export class BundledClientAssetsMissingError extends Schema.TaggedErrorClass()(
+export class UnsupportedDesktopBuildPlatformError extends Schema.TaggedError()(
   "UnsupportedDesktopBuildPlatformError",
   {
     platform: Schema.String,
@@ -366,7 +366,7 @@ const DependencyResolutionKind = Schema.Literals([
   "desktop-runtime",
 ]);
 
-export class DesktopBuildDependencyResolutionError extends Schema.TaggedErrorClass()(
+export class DesktopBuildDependencyResolutionError extends Schema.TaggedError()(
   "DesktopBuildDependencyResolutionError",
   {
     kind: DependencyResolutionKind,
@@ -379,7 +379,7 @@ export class DesktopBuildDependencyResolutionError extends Schema.TaggedErrorCla
   }
 }
 
-export class MissingServerProductionDependenciesError extends Schema.TaggedErrorClass()(
+export class MissingServerProductionDependenciesError extends Schema.TaggedError()(
   "MissingServerProductionDependenciesError",
   {
     manifestPath: Schema.String,
@@ -431,7 +431,7 @@ if (!result.ok) throw new Error(result.error);
 result.value.destroy();
 `;
 
-export class ExternalizedBundleError extends Schema.TaggedErrorClass()(
+export class ExternalizedBundleError extends Schema.TaggedError()(
   "ExternalizedBundleError",
   { sentinel: Schema.String, inlinedPackageCount: Schema.Number },
 ) {
@@ -440,7 +440,7 @@ export class ExternalizedBundleError extends Schema.TaggedErrorClass()(
+export class BundleNotSelfContainedError extends Schema.TaggedError()(
   "BundleNotSelfContainedError",
   { exitCode: Schema.Number, output: Schema.String },
 ) {
@@ -450,7 +450,7 @@ ${this.output}`;
   }
 }
 
-export class InlinedNativePackageError extends Schema.TaggedErrorClass()(
+export class InlinedNativePackageError extends Schema.TaggedError()(
   "InlinedNativePackageError",
   { packages: Schema.Array(Schema.String) },
 ) {
@@ -459,7 +459,7 @@ export class InlinedNativePackageError extends Schema.TaggedErrorClass()(
+export class InlinedExternalPackageError extends Schema.TaggedError()(
   "InlinedExternalPackageError",
   { packages: Schema.Array(Schema.String) },
 ) {
@@ -468,7 +468,7 @@ export class InlinedExternalPackageError extends Schema.TaggedErrorClass()(
+export class MissingDesktopBuildInputError extends Schema.TaggedError()(
   "MissingDesktopBuildInputError",
   {
     artifact: DesktopBuildInputArtifact,
@@ -481,7 +481,7 @@ export class MissingDesktopBuildInputError extends Schema.TaggedErrorClass()(
+export class MacProvisioningProfileNotFoundError extends Schema.TaggedError()(
   "MacProvisioningProfileNotFoundError",
   {
     provisioningProfilePath: Schema.String,
@@ -492,7 +492,7 @@ export class MacProvisioningProfileNotFoundError extends Schema.TaggedErrorClass
   }
 }
 
-export class DesktopBuildDistDirectoryMissingError extends Schema.TaggedErrorClass()(
+export class DesktopBuildDistDirectoryMissingError extends Schema.TaggedError()(
   "DesktopBuildDistDirectoryMissingError",
   {
     distPath: Schema.String,
@@ -505,7 +505,7 @@ export class DesktopBuildDistDirectoryMissingError extends Schema.TaggedErrorCla
   }
 }
 
-export class DesktopBuildNoArtifactsProducedError extends Schema.TaggedErrorClass()(
+export class DesktopBuildNoArtifactsProducedError extends Schema.TaggedError()(
   "DesktopBuildNoArtifactsProducedError",
   {
     distPath: Schema.String,
@@ -518,7 +518,7 @@ export class DesktopBuildNoArtifactsProducedError extends Schema.TaggedErrorClas
   }
 }
 
-export class WslNodePtyPrebuildMissingError extends Schema.TaggedErrorClass()(
+export class WslNodePtyPrebuildMissingError extends Schema.TaggedError()(
   "WslNodePtyPrebuildMissingError",
   {
     prebuildPath: Schema.String,
@@ -529,7 +529,7 @@ export class WslNodePtyPrebuildMissingError extends Schema.TaggedErrorClass()(
+export class WindowsServerSidecarPackError extends Schema.TaggedError()(
   "WindowsServerSidecarPackError",
   {
     asarPath: Schema.String,
@@ -541,7 +541,7 @@ export class WindowsServerSidecarPackError extends Schema.TaggedErrorClass()(
+export class WindowsPrimaryNativeProbeError extends Schema.TaggedError()(
   "WindowsPrimaryNativeProbeError",
   {
     executablePath: Schema.String,
@@ -563,7 +563,7 @@ const WindowsPackagedPayloadValidationReason = Schema.Literals([
   "file-limit-exceeded",
 ]);
 
-export class WindowsPackagedPayloadValidationError extends Schema.TaggedErrorClass()(
+export class WindowsPackagedPayloadValidationError extends Schema.TaggedError()(
   "WindowsPackagedPayloadValidationError",
   {
     reason: WindowsPackagedPayloadValidationReason,
@@ -594,7 +594,7 @@ export class WindowsPackagedPayloadValidationError extends Schema.TaggedErrorCla
   }
 }
 
-export class WslNodePtyManifestReadError extends Schema.TaggedErrorClass()(
+export class WslNodePtyManifestReadError extends Schema.TaggedError()(
   "WslNodePtyManifestReadError",
   {
     manifestPath: Schema.String,
@@ -606,7 +606,7 @@ export class WslNodePtyManifestReadError extends Schema.TaggedErrorClass()(
+export class LinuxIconResizeError extends Schema.TaggedError()(
   "LinuxIconResizeError",
   {
     operation: Schema.Literal("resize"),
@@ -859,7 +859,7 @@ export const InvalidMacPasskeyRpDomainReason = Schema.Literals([
 ]);
 export type InvalidMacPasskeyRpDomainReason = typeof InvalidMacPasskeyRpDomainReason.Type;
 
-export class InvalidMacPasskeyRpDomainError extends Schema.TaggedErrorClass()(
+export class InvalidMacPasskeyRpDomainError extends Schema.TaggedError()(
   "InvalidMacPasskeyRpDomainError",
   {
     reason: InvalidMacPasskeyRpDomainReason,
@@ -872,7 +872,7 @@ export class InvalidMacPasskeyRpDomainError extends Schema.TaggedErrorClass()(
+export class InvalidAppleTeamIdError extends Schema.TaggedError()(
   "InvalidAppleTeamIdError",
   {
     teamId: Schema.String,
@@ -883,7 +883,7 @@ export class InvalidAppleTeamIdError extends Schema.TaggedErrorClass()(
+export class MissingMacPasskeyProvisioningProfileError extends Schema.TaggedError()(
   "MissingMacPasskeyProvisioningProfileError",
   {},
 ) {
@@ -892,7 +892,7 @@ export class MissingMacPasskeyProvisioningProfileError extends Schema.TaggedErro
   }
 }
 
-export class MissingMacPasskeyDomainConfigurationError extends Schema.TaggedErrorClass()(
+export class MissingMacPasskeyDomainConfigurationError extends Schema.TaggedError()(
   "MissingMacPasskeyDomainConfigurationError",
   {},
 ) {
@@ -901,7 +901,7 @@ export class MissingMacPasskeyDomainConfigurationError extends Schema.TaggedErro
   }
 }
 
-export class InvalidMacPasskeyPublishableKeyError extends Schema.TaggedErrorClass()(
+export class InvalidMacPasskeyPublishableKeyError extends Schema.TaggedError()(
   "InvalidMacPasskeyPublishableKeyError",
   {
     cause: Schema.Defect(),
@@ -912,7 +912,7 @@ export class InvalidMacPasskeyPublishableKeyError extends Schema.TaggedErrorClas
   }
 }
 
-export class MissingMacPasskeyRpDomainError extends Schema.TaggedErrorClass()(
+export class MissingMacPasskeyRpDomainError extends Schema.TaggedError()(
   "MissingMacPasskeyRpDomainError",
   {},
 ) {
diff --git a/scripts/dev-runner.ts b/scripts/dev-runner.ts
index d426cc7829b1..fd90621c0ae8 100644
--- a/scripts/dev-runner.ts
+++ b/scripts/dev-runner.ts
@@ -106,7 +106,7 @@ export function isBrowserAllowedPort(port: number): boolean {
   return !FETCH_BAD_PORTS.has(port);
 }
 
-export class DevRunnerConfigurationError extends Schema.TaggedErrorClass()(
+export class DevRunnerConfigurationError extends Schema.TaggedError()(
   "DevRunnerConfigurationError",
   {
     configKeys: Schema.Array(Schema.String),
@@ -118,7 +118,7 @@ export class DevRunnerConfigurationError extends Schema.TaggedErrorClass()(
+export class DevRunnerInvalidPortOffsetError extends Schema.TaggedError()(
   "DevRunnerInvalidPortOffsetError",
   {
     configKey: Schema.Literal("T3CODE_PORT_OFFSET"),
@@ -131,7 +131,7 @@ export class DevRunnerInvalidPortOffsetError extends Schema.TaggedErrorClass()(
+export class DevRunnerPortExhaustedError extends Schema.TaggedError()(
   "DevRunnerPortExhaustedError",
   {
     startOffset: Schema.Number,
@@ -147,7 +147,7 @@ export class DevRunnerPortExhaustedError extends Schema.TaggedErrorClass()(
+export class DevRunnerProcessError extends Schema.TaggedError()(
   "DevRunnerProcessError",
   {
     operation: Schema.Literals(["spawn", "wait-for-exit"]),
@@ -163,7 +163,7 @@ export class DevRunnerProcessError extends Schema.TaggedErrorClass()(
+export class DevRunnerProcessExitError extends Schema.TaggedError()(
   "DevRunnerProcessExitError",
   {
     mode: Schema.Literals(["dev", "dev:server", "dev:web", "dev:desktop"]),
@@ -178,7 +178,7 @@ export class DevRunnerProcessExitError extends Schema.TaggedErrorClass()(
+export class DevRunnerHostNotProxiableError extends Schema.TaggedError()(
   "DevRunnerHostNotProxiableError",
   {
     mode: Schema.Literals(["dev", "dev:web"]),
diff --git a/scripts/export-brand-icons.ts b/scripts/export-brand-icons.ts
index 04b41f278582..3150aa2e396a 100644
--- a/scripts/export-brand-icons.ts
+++ b/scripts/export-brand-icons.ts
@@ -73,7 +73,7 @@ interface CommandResult {
   readonly exitCode: number;
 }
 
-export class IconExportFileSystemError extends Schema.TaggedErrorClass()(
+export class IconExportFileSystemError extends Schema.TaggedError()(
   "IconExportFileSystemError",
   {
     operation: Schema.Literals([
@@ -96,7 +96,7 @@ export class IconExportFileSystemError extends Schema.TaggedErrorClass()(
+export class IconExportProcessError extends Schema.TaggedError()(
   "IconExportProcessError",
   {
     operation: Schema.Literals(["spawn", "collect-stdout", "collect-stderr", "wait-for-exit"]),
@@ -110,7 +110,7 @@ export class IconExportProcessError extends Schema.TaggedErrorClass()(
+export class IconExportCommandFailedError extends Schema.TaggedError()(
   "IconExportCommandFailedError",
   {
     command: Schema.String,
@@ -127,7 +127,7 @@ export class IconExportCommandFailedError extends Schema.TaggedErrorClass()(
+export class IconExportToolResolutionError extends Schema.TaggedError()(
   "IconExportToolResolutionError",
   {
     reason: Schema.Literals(["configured-invalid", "configured-outdated", "not-found"]),
@@ -148,7 +148,7 @@ export class IconExportToolResolutionError extends Schema.TaggedErrorClass()(
+export class IconExportSourceMissingError extends Schema.TaggedError()(
   "IconExportSourceMissingError",
   {
     sourcePath: Schema.String,
@@ -159,7 +159,7 @@ export class IconExportSourceMissingError extends Schema.TaggedErrorClass()(
+export class IconExportRenditionError extends Schema.TaggedError()(
   "IconExportRenditionError",
   {
     sourcePath: Schema.String,
@@ -179,7 +179,7 @@ export class IconExportRenditionError extends Schema.TaggedErrorClass()(
+export class IconExportEncodingError extends Schema.TaggedError()(
   "IconExportEncodingError",
   {
     variant: Schema.String,
@@ -191,7 +191,7 @@ export class IconExportEncodingError extends Schema.TaggedErrorClass()(
+export class IconExportAssetsStaleError extends Schema.TaggedError()(
   "IconExportAssetsStaleError",
   {
     paths: Schema.Array(Schema.String),
diff --git a/scripts/lib/dev-share.ts b/scripts/lib/dev-share.ts
index 0f843b3ba91e..aab1eb3f9888 100644
--- a/scripts/lib/dev-share.ts
+++ b/scripts/lib/dev-share.ts
@@ -55,7 +55,7 @@ const explainCommandFailure = (error: TailscaleCommandError): string | undefined
  * Each wraps a real underlying failure and so keeps it as `cause`; the message
  * is derived only from the structural fields, never from `cause.message`.
  */
-export class TailscaleUnavailableError extends Schema.TaggedErrorClass()(
+export class TailscaleUnavailableError extends Schema.TaggedError()(
   "TailscaleUnavailableError",
   { cause: Schema.Defect() },
 ) {
@@ -69,7 +69,7 @@ export class TailscaleUnavailableError extends Schema.TaggedErrorClass()(
+export class TailnetNameMissingError extends Schema.TaggedError()(
   "TailnetNameMissingError",
   {},
 ) {
@@ -87,7 +87,7 @@ export class TailnetNameMissingError extends Schema.TaggedErrorClass()(
+export class DevServeFailedError extends Schema.TaggedError()(
   "DevServeFailedError",
   {
     stage: Schema.Literals(["clear-existing", "serve"]),
diff --git a/scripts/lib/resolve-catalog.ts b/scripts/lib/resolve-catalog.ts
index eb9d4cc78c8a..995224aa67a2 100644
--- a/scripts/lib/resolve-catalog.ts
+++ b/scripts/lib/resolve-catalog.ts
@@ -1,6 +1,6 @@
 import * as Schema from "effect/Schema";
 
-export class CatalogDependencyResolutionError extends Schema.TaggedErrorClass()(
+export class CatalogDependencyResolutionError extends Schema.TaggedError()(
   "CatalogDependencyResolutionError",
   {
     workspacePackage: Schema.String,
diff --git a/scripts/mobile-native-static-check.ts b/scripts/mobile-native-static-check.ts
index 8239a092bc22..a99e6e143630 100644
--- a/scripts/mobile-native-static-check.ts
+++ b/scripts/mobile-native-static-check.ts
@@ -19,7 +19,7 @@ interface NativeStaticTool {
 
 const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
 
-export class NativeStaticCheckSourceDiscoveryError extends Schema.TaggedErrorClass()(
+export class NativeStaticCheckSourceDiscoveryError extends Schema.TaggedError()(
   "NativeStaticCheckSourceDiscoveryError",
   {
     operation: Schema.Literals(["resolve-root", "read-directory", "stat-entry"]),
@@ -32,7 +32,7 @@ export class NativeStaticCheckSourceDiscoveryError extends Schema.TaggedErrorCla
   }
 }
 
-export class NativeStaticCheckProcessError extends Schema.TaggedErrorClass()(
+export class NativeStaticCheckProcessError extends Schema.TaggedError()(
   "NativeStaticCheckProcessError",
   {
     operation: Schema.Literals(["spawn", "wait-for-exit"]),
@@ -48,7 +48,7 @@ export class NativeStaticCheckProcessError extends Schema.TaggedErrorClass()(
+export class NativeStaticCheckCommandError extends Schema.TaggedError()(
   "NativeStaticCheckCommandError",
   {
     command: Schema.String,
diff --git a/scripts/notify-discord-release.ts b/scripts/notify-discord-release.ts
index d013e7c2f657..431ddfcd4516 100644
--- a/scripts/notify-discord-release.ts
+++ b/scripts/notify-discord-release.ts
@@ -65,7 +65,7 @@ const discordReleaseErrorContext = {
   hasRoleMentionSyntax: Schema.Boolean,
 };
 
-export class DiscordReleaseWebhookRequestError extends Schema.TaggedErrorClass()(
+export class DiscordReleaseWebhookRequestError extends Schema.TaggedError()(
   "DiscordReleaseWebhookRequestError",
   {
     ...discordReleaseErrorContext,
@@ -77,7 +77,7 @@ export class DiscordReleaseWebhookRequestError extends Schema.TaggedErrorClass()(
+export class DiscordReleaseWebhookResponseError extends Schema.TaggedError()(
   "DiscordReleaseWebhookResponseError",
   {
     ...discordReleaseErrorContext,
diff --git a/scripts/resolve-nightly-release.ts b/scripts/resolve-nightly-release.ts
index 5b42f931d7b5..672e61aedb42 100644
--- a/scripts/resolve-nightly-release.ts
+++ b/scripts/resolve-nightly-release.ts
@@ -29,7 +29,7 @@ const DesktopPackageJsonSchema = Schema.Struct({
   version: Schema.NonEmptyString,
 });
 
-export class InvalidDesktopPackageVersionError extends Schema.TaggedErrorClass()(
+export class InvalidDesktopPackageVersionError extends Schema.TaggedError()(
   "InvalidDesktopPackageVersionError",
   {
     version: Schema.String,
@@ -40,7 +40,7 @@ export class InvalidDesktopPackageVersionError extends Schema.TaggedErrorClass()(
+export class NightlyReleaseDesktopPackageError extends Schema.TaggedError()(
   "NightlyReleaseDesktopPackageError",
   {
     operation: Schema.Literals(["read", "decode"]),
@@ -53,7 +53,7 @@ export class NightlyReleaseDesktopPackageError extends Schema.TaggedErrorClass()(
+export class NightlyReleaseGitHubOutputConfigError extends Schema.TaggedError()(
   "NightlyReleaseGitHubOutputConfigError",
   {
     cause: Schema.Defect(),
@@ -64,7 +64,7 @@ export class NightlyReleaseGitHubOutputConfigError extends Schema.TaggedErrorCla
   }
 }
 
-export class NightlyReleaseGitHubOutputAppendError extends Schema.TaggedErrorClass()(
+export class NightlyReleaseGitHubOutputAppendError extends Schema.TaggedError()(
   "NightlyReleaseGitHubOutputAppendError",
   {
     outputPath: Schema.String,
diff --git a/scripts/resolve-previous-release-tag.ts b/scripts/resolve-previous-release-tag.ts
index 7acc6f456b85..43b3901af810 100644
--- a/scripts/resolve-previous-release-tag.ts
+++ b/scripts/resolve-previous-release-tag.ts
@@ -14,7 +14,7 @@ import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
 const ReleaseChannel = Schema.Literals(["stable", "nightly"]);
 type ReleaseChannel = typeof ReleaseChannel.Type;
 
-export class InvalidReleaseTagError extends Schema.TaggedErrorClass()(
+export class InvalidReleaseTagError extends Schema.TaggedError()(
   "InvalidReleaseTagError",
   {
     channel: ReleaseChannel,
@@ -34,7 +34,7 @@ const releaseTagListProcessContext = {
   cwd: Schema.String,
 };
 
-export class ReleaseTagListProcessError extends Schema.TaggedErrorClass()(
+export class ReleaseTagListProcessError extends Schema.TaggedError()(
   "ReleaseTagListProcessError",
   {
     ...releaseTagListProcessContext,
@@ -47,7 +47,7 @@ export class ReleaseTagListProcessError extends Schema.TaggedErrorClass()(
+export class ReleaseTagListProcessExitError extends Schema.TaggedError()(
   "ReleaseTagListProcessExitError",
   {
     ...releaseTagListProcessContext,
@@ -61,7 +61,7 @@ export class ReleaseTagListProcessExitError extends Schema.TaggedErrorClass()(
+export class PreviousReleaseTagGitHubOutputConfigError extends Schema.TaggedError()(
   "PreviousReleaseTagGitHubOutputConfigError",
   {
     cause: Schema.Defect(),
@@ -72,7 +72,7 @@ export class PreviousReleaseTagGitHubOutputConfigError extends Schema.TaggedErro
   }
 }
 
-export class PreviousReleaseTagGitHubOutputAppendError extends Schema.TaggedErrorClass()(
+export class PreviousReleaseTagGitHubOutputAppendError extends Schema.TaggedError()(
   "PreviousReleaseTagGitHubOutputAppendError",
   {
     outputPath: Schema.String,
diff --git a/scripts/sync-reference-repos.ts b/scripts/sync-reference-repos.ts
index 70e97bdec980..f39a8d708a65 100644
--- a/scripts/sync-reference-repos.ts
+++ b/scripts/sync-reference-repos.ts
@@ -31,7 +31,7 @@ export interface ReferenceRepoSyncPlan {
   readonly args: ReadonlyArray;
 }
 
-export class ReferenceRepoSelectionError extends Schema.TaggedErrorClass()(
+export class ReferenceRepoSelectionError extends Schema.TaggedError()(
   "ReferenceRepoSelectionError",
   {
     repoId: Schema.String,
@@ -43,7 +43,7 @@ export class ReferenceRepoSelectionError extends Schema.TaggedErrorClass()(
+export class ReferenceRepoVersionSourceError extends Schema.TaggedError()(
   "ReferenceRepoVersionSourceError",
   {
     operation: Schema.Literals(["read", "parse"]),
@@ -57,7 +57,7 @@ export class ReferenceRepoVersionSourceError extends Schema.TaggedErrorClass()(
+export class ReferenceRepoVersionResolutionError extends Schema.TaggedError()(
   "ReferenceRepoVersionResolutionError",
   {
     repoId: Schema.String,
@@ -70,7 +70,7 @@ export class ReferenceRepoVersionResolutionError extends Schema.TaggedErrorClass
   }
 }
 
-export class ReferenceRepoGitSubtreeError extends Schema.TaggedErrorClass()(
+export class ReferenceRepoGitSubtreeError extends Schema.TaggedError()(
   "ReferenceRepoGitSubtreeError",
   {
     operation: Schema.Literals(["spawn", "communicate", "exit"]),
diff --git a/scripts/update-release-package-versions.ts b/scripts/update-release-package-versions.ts
index 5465b5085120..6c1d28c8e384 100644
--- a/scripts/update-release-package-versions.ts
+++ b/scripts/update-release-package-versions.ts
@@ -12,7 +12,7 @@ import * as Schema from "effect/Schema";
 import { Argument, Command, Flag } from "effect/unstable/cli";
 import { fromJsonStringPretty } from "@t3tools/shared/schemaJson";
 
-export class ReleasePackageManifestError extends Schema.TaggedErrorClass()(
+export class ReleasePackageManifestError extends Schema.TaggedError()(
   "ReleasePackageManifestError",
   {
     operation: Schema.Literals(["read", "decode", "encode", "write"]),
@@ -25,7 +25,7 @@ export class ReleasePackageManifestError extends Schema.TaggedErrorClass()(
+export class ReleaseGitHubOutputConfigurationError extends Schema.TaggedError()(
   "ReleaseGitHubOutputConfigurationError",
   { cause: Schema.Defect() },
 ) {
@@ -34,7 +34,7 @@ export class ReleaseGitHubOutputConfigurationError extends Schema.TaggedErrorCla
   }
 }
 
-export class ReleaseGitHubOutputWriteError extends Schema.TaggedErrorClass()(
+export class ReleaseGitHubOutputWriteError extends Schema.TaggedError()(
   "ReleaseGitHubOutputWriteError",
   {
     filePath: Schema.String,