Skip to content

v0.7.0

Choose a tag to compare

@V3RON V3RON released this 19 Aug 11:28
· 76 commits to main since this release
  • Fix: a terminal daemon rejection (1008) now ends the session instead of retrying until
    grace.
    onSocketLost previously treated only close code 1000 as terminal, so an
    unretryable rejection — unknown_session after a daemon restart, invalid_resume_token, a
    session revoked or expired while offline — kept the client in reconnecting for up to
    grace_s (600s default) before its sessionChange: lost listener ever fired. Every
    daemon-side rejection of this kind closes with 1008, so 1008 is now terminal wholesale rather
    than matched by reason string; transport-level closes (1011, 1001, 1006) stay retryable. A
    failed resume's close code now travels with the rejection via
    CordieriteHandshakeClosedError so it isn't thrown away before reaching onSocketLost.
  • Fix: restoreSession() is now a first-class export, reachable without going through
    installCordieriteDeepLinkBootstrap or the cordieriteClient proxy. An app that drives
    bootstrap itself (custom deep-link routing, QR scanning, a manual connect()) had nothing
    reading the native lease, so every Metro reload dropped a session native could still have
    resumed. Exported from the root and ./noop entries and CordierePublicApi.
  • Breaking: requirePrivateIp is removed; /auto is now the only install path.
    allowPrivateLanOnly was already native build config
    (CordieriteAllowPrivateLanOnly in Info.plist / the Android manifest) enforced by native
    connect() on both platforms — the JS requirePrivateIp option could only narrow what
    native already allowed, so setting it to false without also setting the native key did
    nothing. The deep-link handler now reads allowPrivateLanOnly from the same
    getConstants() path native enforces from, failing closed when it can't be read.
    installCordieriteDeepLinkBootstrap and InstallCordieriteDeepLinkBootstrapOptions are gone;
    require("@cordierite/react-native/auto") is the only way to install the bootstrap listener
    now. See packages/react-native/README.md for the current surface.