Repository navigation
IRIS AI 1.8.7
Date: 27 October 2026
Status: local release draft; no installer build, publishing or deployment performed.
Sign-in and account access
- Desktop-initiated Google sign-in returns directly to IRIS through a signed, device-bound OAuth request and PKCE exchange. It does not open the website dashboard.
- Mobile sign-in preserves its original app callback and PKCE state, including when an app privacy acknowledgement is required.
- The HQ dashboard's Open IRIS Desktop action supports modern one-time codes and the token fields expected by older installed desktop clients.
- Cold-start callbacks wait for the renderer. Duplicate callbacks share one exchange, and stale account responses cannot replace the current login.
- Temporary verification failures show a retry state instead of falsely changing Pro accounts to Free. Desktop and Mobile entitlements remain separate.
- Settings includes HQ dashboard and app privacy links. Sign-out requests server session revocation and removes local authentication data.
Checkout and policy choices
- A guest's chosen plan, device-seat quantity, purchase region, coupon and explicit policy acceptance are retained through login for up to 30 minutes in that browser session.
- The selected payment popup resumes once after login. Price or policy changes require review, and unchecked acknowledgements are never treated as accepted.
- Unpaid accounts go to plan selection instead of the customer dashboard. Purchased accounts retain billing and download access. Unconfirmed payments stay on the confirmation flow.
- App, purchase and download acknowledgements have separate backend receipts with server timestamps, policy versions, notice hashes, platform, purpose and actor.
- Google account creation no longer fabricates policy acceptance timestamps. App processing consent can be withdrawn without deleting a purchased plan; app sessions are revoked and fresh acceptance is required to reconnect.
IRIS Eyes packaging
- Explicitly copies Eyes dependencies because electron-builder omits a root node_modules directory from its source resource mapping.
- Retains the runtime helper, portable Node executable, Cesium workers and runtime entry point outside ASAR.
- Keeps provider caches in writable user data and resolves Cesium assets independently of the install directory.
- Checks runtime dependencies and target architecture before packaging. No app build is generated when opening Eyes.
Validation
- Desktop TypeScript checks and authentication regression tests.
- HQ server and client TypeScript checks, focused client lint, app-return/consent tests and existing billing/mobile/download-consent tests.
- Browser checkout regression with a stubbed payment gateway: lifetime selection, typed coupon, purchase state and checked policies survive login; checkout opens once.
- Eyes launched successfully from copied installation resources in a file-based browser host. This is not an installed application test.
Rollout requirements
Deploy the matching HQ server/client changes and release the updated desktop client together. New app return routes and policy receipt endpoints must be available before new desktop clients use them. Apply the normal Google callback configuration for /users/google/callback.
DPDP-related consent records and withdrawal controls are implementation features, not a certification of legal compliance. Operational privacy practices, retention rules and legal review remain required.