@fullstack-webapp/document-shell 0.1.0-beta.1 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,7 @@ results, or interactive state that cannot be known while building the HTML.
27
27
  ## Install
28
28
 
29
29
  ```sh
30
- pnpm add -D @fullstack-webapp/document-shell@beta
30
+ pnpm add -D @fullstack-webapp/document-shell
31
31
  ```
32
32
 
33
33
  Document Shell supports Vite 7 and 8. It emits standard ESM and declarations;
@@ -167,17 +167,19 @@ checklist, and failure guide, see [Integration guide](docs/integration.md).
167
167
  | `@fullstack-webapp/document-shell/client` | The framework-neutral, one-shot runtime handoff. |
168
168
  | `@fullstack-webapp/document-shell/reference` | Reference-application safe-area rollout used to retain existing evidence while profiles mature; it is not a consumer profile selector. |
169
169
 
170
- The current beta catalog contains no `sharedDefault` profile. Therefore the
171
- root `createSafeAreaBridge()` deliberately emits an empty profile list today;
172
- ordinary consumers receive no inferred reserve. This makes unsupported startup
173
- geometry a visible no-op instead of silently adopting provisional values from
174
- the reference application.
170
+ The current beta catalog projects all four accepted iOS standalone portrait
171
+ profiles through `sharedDefault`: `375×812@3x`, `393×852@3x`, `402×874@3x`, and
172
+ `430×932@3x`. Root consumers receive their `34px` startup bottom floor without
173
+ selecting or copying a profile. Maturity remains independent: `402×874@3x` is
174
+ `verified`, while the other three remain `provisional` and can be narrowed or
175
+ revised as production evidence arrives. Unsupported geometry remains a visible
176
+ no-op.
175
177
 
176
- `./reference` is a pre-1.0 migration seam, not a second configuration model. It
177
- remains only while the source application switches from its incubated package
178
- to the public package. Remove the subpath after every reference profile has
179
- either been promoted to `sharedDefault` or retired and the source application
180
- uses the root entry; that removal may be part of a beta breaking release.
178
+ `./reference` is a pre-1.0 migration seam, not a second configuration model.
179
+ All current profiles are now shared defaults, so the subpath projects the same
180
+ catalog as the root entry. It remains temporarily for source compatibility with
181
+ the reference application and can be removed in a later beta breaking release
182
+ after that consumer switches to the root entry.
181
183
 
182
184
  ## Ownership boundary
183
185
 
@@ -205,9 +207,9 @@ an arbitrary callback with `Function#toString()`.
205
207
  - Document Shell validates exactly one viewport meta, manifest link, title,
206
208
  mount point, critical-shell style, static-shell marker, and module entry.
207
209
  - The shared safe-area entry only emits profiles promoted to `sharedDefault`;
208
- the current catalog has none, so the root bridge is intentionally inactive.
209
- Reference-only profiles never enter ordinary consumer bytes. Consumers do
210
- not choose individual device profiles or rollout maturity.
210
+ the current catalog emits all four accepted portrait profiles while retaining
211
+ their verified or provisional maturity. Consumers do not choose individual
212
+ device profiles or rollout maturity.
211
213
  - The current safe-area runtime matches observable browser geometry and
212
214
  platform signals, not marketing device names. Unsupported geometry fails
213
215
  open and receives no reserve.
@@ -30,7 +30,7 @@ export declare const safeAreaCompatibilityProfiles: ({
30
30
  bottom: number;
31
31
  };
32
32
  maturity: "provisional";
33
- rollout: "referenceProduction";
33
+ rollout: "sharedDefault";
34
34
  } | {
35
35
  id: string;
36
36
  platform: "ios";
@@ -46,5 +46,5 @@ export declare const safeAreaCompatibilityProfiles: ({
46
46
  bottom: number;
47
47
  };
48
48
  maturity: "verified";
49
- rollout: "referenceProduction";
49
+ rollout: "sharedDefault";
50
50
  })[];
@@ -16,7 +16,7 @@ export const safeAreaCompatibilityProfiles = [
16
16
  devicePixelRatio: 3,
17
17
  reserve: { bottom: 34 },
18
18
  maturity: 'provisional',
19
- rollout: 'referenceProduction',
19
+ rollout: 'sharedDefault',
20
20
  },
21
21
  {
22
22
  id: 'ios-393x852-3x-portrait-standalone',
@@ -28,7 +28,7 @@ export const safeAreaCompatibilityProfiles = [
28
28
  devicePixelRatio: 3,
29
29
  reserve: { bottom: 34 },
30
30
  maturity: 'provisional',
31
- rollout: 'referenceProduction',
31
+ rollout: 'sharedDefault',
32
32
  },
33
33
  {
34
34
  id: 'ios-402x874-3x-portrait-standalone',
@@ -40,7 +40,7 @@ export const safeAreaCompatibilityProfiles = [
40
40
  devicePixelRatio: 3,
41
41
  reserve: { bottom: 34 },
42
42
  maturity: 'verified',
43
- rollout: 'referenceProduction',
43
+ rollout: 'sharedDefault',
44
44
  },
45
45
  {
46
46
  id: 'ios-430x932-3x-portrait-standalone',
@@ -52,6 +52,6 @@ export const safeAreaCompatibilityProfiles = [
52
52
  devicePixelRatio: 3,
53
53
  reserve: { bottom: 34 },
54
54
  maturity: 'provisional',
55
- rollout: 'referenceProduction',
55
+ rollout: 'sharedDefault',
56
56
  },
57
57
  ];
@@ -19,7 +19,7 @@ coordinates lifecycle; it cannot make two independently styled tab bars match.
19
19
  ## 1. Install and create the sentinel
20
20
 
21
21
  ```sh
22
- pnpm add -D @fullstack-webapp/document-shell@beta
22
+ pnpm add -D @fullstack-webapp/document-shell
23
23
  ```
24
24
 
25
25
  Replace the checked-in `index.html` with only the Vite module entry and the
@@ -250,17 +250,19 @@ Then consume the variable from both shell implementations:
250
250
  ```
251
251
 
252
252
  The root entry projects only profiles whose package-owned rollout is
253
- `sharedDefault`. The current beta may therefore emit an empty catalog on an
254
- ordinary consumer. This is intentional fail-open behavior, not a configuration
255
- error. Consumers cannot pass a model name, reserve value, maturity, or rollout
256
- policy. Promotion happens in the package after evidence review.
257
-
258
- `@fullstack-webapp/document-shell/reference` temporarily contains the source
259
- application's `referenceProduction` profiles so migration can preserve its
260
- already verified behavior without silently enabling those provisional values
261
- for every consumer. New applications should not import that subpath. It exits
262
- after those profiles are promoted or retired and the source application can use
263
- the root entry.
253
+ `sharedDefault`. The current beta includes all four accepted iOS standalone
254
+ portrait profiles. Their maturity remains distinct: one is verified and three
255
+ are provisional, but all receive the same bounded production rollout because a
256
+ wrong startup floor has a low and reversible visual consequence. Unsupported
257
+ signatures still fail open. Consumers cannot pass a model name, reserve value,
258
+ maturity, or rollout policy; narrowing or promotion happens in the package
259
+ after evidence review.
260
+
261
+ `@fullstack-webapp/document-shell/reference` is a temporary source-compatibility
262
+ entry for the reference application. The current catalog has no
263
+ `referenceProduction`-only profile, so this subpath projects the same profiles
264
+ as the root entry. New applications should not import it; it exits after the
265
+ reference application migrates to the root entry.
264
266
 
265
267
  When a reserve matches, the bridge writes the declared CSS variable before
266
268
  paint. It removes the reserve after the native inset reaches the profile floor
@@ -329,9 +331,10 @@ rather than adding delay to the handoff.
329
331
 
330
332
  ### Safe-area reserve is inactive
331
333
 
332
- No `sharedDefault` profile matched the observable runtime signature. This is
333
- the safe failure mode. Capture evidence before proposing a package profile; do
334
- not hard-code an application-side model table.
334
+ No `sharedDefault` profile matched the observable runtime signature, or the
335
+ runtime platform/version/display-mode tuple did not qualify. This is the safe
336
+ failure mode. Capture evidence before proposing a package profile; do not
337
+ hard-code an application-side model table.
335
338
 
336
339
  ### A diagnostics marker appears in production
337
340
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullstack-webapp/document-shell",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "Parser-visible startup shell compiler, Vite HTML pipeline, and framework-neutral runtime handoff for web applications.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public",
49
- "tag": "beta"
49
+ "tag": "latest"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "vite": ">=7 <9"