1.0.0 (2026-11-15)
⚠ BREAKING CHANGES
- base-driver: a command result shaped like {protocol, value} is no longer unwrapped. It is returned as the command value. {protocol, error} is still thrown when error is an Error and protocol is W3C or MJSONWP.
- @appium/tsconfig now sets noImplicitOverride: true. Extensions extending this config must mark overriding members with override, otherwise tsc fails with TS4114.
- base-driver: POST body has to be a JSON object, otherwise the server returns invalid argument error.
- http-server: clients that send an Origin header must enable the CORS feature (--allow-insecure=*:cors).
- http-server: Library callers that depended on the implicit CORS default must now pass allowCors: true
- storage-plugin: the storage routes (and the stream/events websocket paths) were always mounted at the server root, ignoring --base-path. They are now prefixed with the base path, e.g. /wd/hub/appium/storage/add.
- base-driver: @appium/base-driver no longer exports server, normalizeBasePath, configureServer, ServerOpts, ConfigureServerOpts, ConfigureHttpOpts, or StartServerOpts, and no longer depends on express/morgan/body-parser/ method-override/path-to-regexp. Use the new @appium/http-server package instead.
- base-driver: appium/driver.js and driver.d.ts no longer re-export server/normalizeBasePath/configureServer/ServerOpts (or their types), and no longer use a blanket export *. Import from @appium/http-server directly if you were relying on this undocumented path.
Features
Bug Fixes
- base-driver: keep command results that contain a protocol field (#23121) (1abd4a4)
- base-driver: preserve optional WebDriver error data (#22974) (df417a3), closes #22966 #22966
- base-driver: reject command POST bodies that are not JSON objects (#23007) (643342e)
- base-driver: reject implicit HEAD command routing (#22992) (971b81e)
- base-driver: return protocol errors for null rejections (#22869) (7808465)
- centralize URL hostname formatting and bracket IPv6 hosts (#22914) (68d0739)
- http-server: contain WebSocket upgrade failures (#22944) (88c1532)
- http-server: reject browser-origin requests unless CORS is enabled (#22990) (c9f5faf)
- http-server: reject invalid JSON only after the route is known (#23057) (c96bc2b)
- http-server: return unknown method for a known command url (#22991) (5760915)
- http-server: return WebDriver errors for the root path (#22969) (eb9ed92)
- http-server: set no-cache on WebDriver responses (#22971) (49379b9)
- storage-plugin: mount routes under the server base path (#22906) (1b07819)