diff --git a/.changeset/optional-auth-domain.md b/.changeset/optional-auth-domain.md deleted file mode 100644 index 29ad60a..0000000 --- a/.changeset/optional-auth-domain.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"create-eigen-game": patch ---- - -Scaffold an optional `AUTH_DOMAIN`. - -Web sign-in runs through Firebase's popup, which loads -`https:///__/auth/handler`, so Google's account chooser reads "Sign -in to continue to my-project.firebaseapp.com". `app-config.json` now carries an -`AUTH_DOMAIN` key and `main.dart` passes it to `EngineConfig.authDomain`. The -pinned `eigen_flutter` floor moves to `^0.4.1` for that parameter: additive, so -a patch pre-1.0, but the floor has to rise or a scaffold could resolve 0.4.0 and -fail to compile. - -Empty is the scaffolded value and the right answer for almost every game: it -leaves sign-in on the Firebase project's own domain, which works everywhere and -needs no Firebase Hosting. Setting it is cosmetic and web-only, and it is not -`APP_HOST`: the value must be a Firebase Hosting domain, a sibling of the -Worker's host rather than the host itself. diff --git a/.changeset/placeholder-app-icon.md b/.changeset/placeholder-app-icon.md deleted file mode 100644 index aaa73aa..0000000 --- a/.changeset/placeholder-app-icon.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -"@eigeninteractive/server": patch ---- - -Serve a placeholder app icon instead of linking one that is not there. - -Every page the engine renders linked `/favicon.png` and `/icons/Icon-192.png` -unconditionally. Those are static assets from the game's own `public/`, which a -fresh scaffold ships holding a single `.gitkeep`, so until a Flutter web build -landed there the browser tab was blank and all four manifest icons 404ed. An -Android-only game, which never runs `build:web`, stayed that way permanently, -even though the download page's hero already had a fallback for exactly this -case. - -The shell now links the EigenInteractive mark, served by the worker at -`/_eigen/icon/v1/mark.svg` and drawn in the game's `site.primaryColor`, and the -manifest advertises that single scalable icon rather than four missing PNGs. -Apple's touch icon is omitted rather than pointed at a missing file, since it -has no SVG support. - -It is a placeholder, not a default: as soon as `favicon.png` exists in -`public/`, the shell links the game's own icons everywhere and the placeholder -goes unused. - -The probe behind that decision was split in two. `hasWebBuild` asks for -`index.html` and still gates the "Play on the web" button; the new -`hasAppIcons` asks for `favicon.png` and gates every icon. They used to be one -question on the grounds that `flutter build web` emits both together, which is -true for a game that ships on the web and wrong for the case worth supporting: -an Android-only game that copies its launcher icons into `public/` now gets -them. `hasAppIcons` checks the response's content type as well as its status, -because the scaffold's `single-page-application` fallback answers `200 OK` with -`index.html` for any asset that is missing. diff --git a/clients/dart/CHANGELOG.md b/clients/dart/CHANGELOG.md index 736edd5..6ceb158 100644 --- a/clients/dart/CHANGELOG.md +++ b/clients/dart/CHANGELOG.md @@ -2,7 +2,7 @@ This package is generated from the Eigen engine's OpenAPI specification and its version tracks [`@eigeninteractive/server`](https://www.npmjs.com/package/@eigeninteractive/server) -exactly: 0.3.0 here is 0.3.0 there. It has no changes of its own. +exactly: 0.3.1 here is 0.3.1 there. It has no changes of its own. See the engine's changelog: diff --git a/clients/dart/README.md b/clients/dart/README.md index af52a2d..f705db6 100644 --- a/clients/dart/README.md +++ b/clients/dart/README.md @@ -16,7 +16,7 @@ The server-authoritative game engine API. Client routes (`/api/engine/_*`) requi This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 0.3.0 +- API version: 0.3.1 - Generator version: 7.17.0 - Build package: org.openapitools.codegen.languages.DartDioClientCodegen diff --git a/clients/dart/pubspec.yaml b/clients/dart/pubspec.yaml index a54a54f..1986cf7 100644 --- a/clients/dart/pubspec.yaml +++ b/clients/dart/pubspec.yaml @@ -15,7 +15,7 @@ description: >- # `version:` is stamped by the generation script from @eigeninteractive/server's # package.json. The wire contract is the server's, so the client carries the # server's version. Do not edit it by hand. -version: 0.3.0 +version: 0.3.1 homepage: https://eigeninteractive.com repository: https://github.com/eigeninteractive/eigen-server issue_tracker: https://github.com/eigeninteractive/eigen-server/issues diff --git a/packages/create-eigen-game/CHANGELOG.md b/packages/create-eigen-game/CHANGELOG.md index 8519d07..4562b96 100644 --- a/packages/create-eigen-game/CHANGELOG.md +++ b/packages/create-eigen-game/CHANGELOG.md @@ -1,5 +1,25 @@ # create-eigen-game +## 0.10.1 + +### Patch Changes + +- [#56](https://github.com/eigeninteractive/eigen-server/pull/56) [`ede5342`](https://github.com/eigeninteractive/eigen-server/commit/ede534238b8c3dac07c4a55f5c7a846ffc2a5aab) Thanks [@seenu-k](https://github.com/seenu-k)! - Scaffold an optional `AUTH_DOMAIN`. + + Web sign-in runs through Firebase's popup, which loads + `https:///__/auth/handler`, so Google's account chooser reads "Sign + in to continue to my-project.firebaseapp.com". `app-config.json` now carries an + `AUTH_DOMAIN` key and `main.dart` passes it to `EngineConfig.authDomain`. The + pinned `eigen_flutter` floor moves to `^0.4.1` for that parameter: additive, so + a patch pre-1.0, but the floor has to rise or a scaffold could resolve 0.4.0 and + fail to compile. + + Empty is the scaffolded value and the right answer for almost every game: it + leaves sign-in on the Firebase project's own domain, which works everywhere and + needs no Firebase Hosting. Setting it is cosmetic and web-only, and it is not + `APP_HOST`: the value must be a Firebase Hosting domain, a sibling of the + Worker's host rather than the host itself. + ## 0.10.0 ### Minor Changes diff --git a/packages/create-eigen-game/package.json b/packages/create-eigen-game/package.json index 7a14e24..43c5efe 100644 --- a/packages/create-eigen-game/package.json +++ b/packages/create-eigen-game/package.json @@ -1,6 +1,6 @@ { "name": "create-eigen-game", - "version": "0.10.0", + "version": "0.10.1", "license": "MIT", "description": "Scaffold an EigenInteractive game Worker and Flutter app without cloning the engine repositories.", "type": "module", diff --git a/packages/kernel/CHANGELOG.md b/packages/kernel/CHANGELOG.md index 7c04b8c..0f77e10 100644 --- a/packages/kernel/CHANGELOG.md +++ b/packages/kernel/CHANGELOG.md @@ -1,5 +1,12 @@ # @eigeninteractive/kernel +## 0.3.1 + +### Patch Changes + +- Updated dependencies []: + - @eigeninteractive/rules@0.3.1 + ## 0.3.0 ### Patch Changes diff --git a/packages/kernel/package.json b/packages/kernel/package.json index 5f755c4..31affc4 100644 --- a/packages/kernel/package.json +++ b/packages/kernel/package.json @@ -1,6 +1,6 @@ { "name": "@eigeninteractive/kernel", - "version": "0.3.0", + "version": "0.3.1", "license": "MIT", "description": "The pure decision core of the EigenInteractive engine: given a game, state, roster and intent it returns a commit plan or a rejection. No I/O, no platform APIs.", "main": "./dist/index.js", diff --git a/packages/rules/CHANGELOG.md b/packages/rules/CHANGELOG.md index 8ed6f06..cbbc62c 100644 --- a/packages/rules/CHANGELOG.md +++ b/packages/rules/CHANGELOG.md @@ -1,5 +1,7 @@ # @eigeninteractive/rules +## 0.3.1 + ## 0.3.0 ## 0.2.5 diff --git a/packages/rules/package.json b/packages/rules/package.json index 34c7eeb..475d6a2 100644 --- a/packages/rules/package.json +++ b/packages/rules/package.json @@ -1,6 +1,6 @@ { "name": "@eigeninteractive/rules", - "version": "0.3.0", + "version": "0.3.1", "license": "MIT", "description": "The game-rules contract for the EigenInteractive engine: GameRules, GameModule, the hooks, and the Envelope/Observation types. Pure types, zero engine dependencies.", "main": "./dist/index.js", diff --git a/packages/server/CHANGELOG.md b/packages/server/CHANGELOG.md index 54aabca..d04ead2 100644 --- a/packages/server/CHANGELOG.md +++ b/packages/server/CHANGELOG.md @@ -1,5 +1,42 @@ # @eigeninteractive/server +## 0.3.1 + +### Patch Changes + +- [#55](https://github.com/eigeninteractive/eigen-server/pull/55) [`13ac3e3`](https://github.com/eigeninteractive/eigen-server/commit/13ac3e38ab18a8da39e09392bc3a70226d0b3bf2) Thanks [@seenu-k](https://github.com/seenu-k)! - Serve a placeholder app icon instead of linking one that is not there. + + Every page the engine renders linked `/favicon.png` and `/icons/Icon-192.png` + unconditionally. Those are static assets from the game's own `public/`, which a + fresh scaffold ships holding a single `.gitkeep`, so until a Flutter web build + landed there the browser tab was blank and all four manifest icons 404ed. An + Android-only game, which never runs `build:web`, stayed that way permanently, + even though the download page's hero already had a fallback for exactly this + case. + + The shell now links the EigenInteractive mark, served by the worker at + `/_eigen/icon/v1/mark.svg` and drawn in the game's `site.primaryColor`, and the + manifest advertises that single scalable icon rather than four missing PNGs. + Apple's touch icon is omitted rather than pointed at a missing file, since it + has no SVG support. + + It is a placeholder, not a default: as soon as `favicon.png` exists in + `public/`, the shell links the game's own icons everywhere and the placeholder + goes unused. + + The probe behind that decision was split in two. `hasWebBuild` asks for + `index.html` and still gates the "Play on the web" button; the new + `hasAppIcons` asks for `favicon.png` and gates every icon. They used to be one + question on the grounds that `flutter build web` emits both together, which is + true for a game that ships on the web and wrong for the case worth supporting: + an Android-only game that copies its launcher icons into `public/` now gets + them. `hasAppIcons` checks the response's content type as well as its status, + because the scaffold's `single-page-application` fallback answers `200 OK` with + `index.html` for any asset that is missing. +- Updated dependencies []: + - @eigeninteractive/kernel@0.3.1 + - @eigeninteractive/rules@0.3.1 + ## 0.3.0 ### Minor Changes diff --git a/packages/server/openapi.json b/packages/server/openapi.json index 274d571..cd4ee08 100644 --- a/packages/server/openapi.json +++ b/packages/server/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "EigenInteractive Engine API", - "version": "0.3.0", + "version": "0.3.1", "description": "The server-authoritative game engine API. Client routes (`/api/engine/*`) require a Firebase ID token; the external-bot webhook (`/api/bot/action`) is HMAC-authenticated." }, "tags": [ diff --git a/packages/server/package.json b/packages/server/package.json index fc9370c..04afdcc 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@eigeninteractive/server", - "version": "0.3.0", + "version": "0.3.1", "license": "MIT", "description": "The deployable half of the EigenInteractive engine: the createEngine Worker factory, the BaseGameDO Durable Object base class, the D1 schema and appliers, auth, bots and push.", "main": "./dist/index.js", diff --git a/packages/testkit/CHANGELOG.md b/packages/testkit/CHANGELOG.md index 79b4bbb..afd6371 100644 --- a/packages/testkit/CHANGELOG.md +++ b/packages/testkit/CHANGELOG.md @@ -1,5 +1,13 @@ # @eigeninteractive/testkit +## 0.3.1 + +### Patch Changes + +- Updated dependencies []: + - @eigeninteractive/kernel@0.3.1 + - @eigeninteractive/rules@0.3.1 + ## 0.3.0 ### Patch Changes diff --git a/packages/testkit/package.json b/packages/testkit/package.json index 37b5691..f799d26 100644 --- a/packages/testkit/package.json +++ b/packages/testkit/package.json @@ -1,6 +1,6 @@ { "name": "@eigeninteractive/testkit", - "version": "0.3.0", + "version": "0.3.1", "license": "MIT", "description": "Test helpers for games built on the EigenInteractive engine: drive rules through the real kernel and run shared twin fixtures, with no Worker, database or network.", "main": "./dist/index.js",