|
1 | 1 | # everything-dev |
2 | 2 |
|
| 3 | +## 2.0.0-rc.41 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- e685c4c: Immutable version directories — parent republishes can no longer rot pinned slots (#826) |
| 8 | + |
| 9 | + Workspace deploys now dual-write every dist file into a content-addressed `versions/<dirId>/…` directory beside the existing flat slot-root layout, and the version manifest declares its directory via a new `dir` field. Pin resolution prefixes artifact coordinates (`entryUrl`, `browserManifestUrl`, `ssrEntryUrl`) with the manifest's directory, so a child pinned to an older slot keeps loading the old deploy's entry **and** its expose chunk, chunks, and manifests from the same frozen directory — a parent republish that overwrites the fixed-name files at the slot root no longer produces mixed builds (`__webpack_modules__[r] is not a function`). Legacy manifests without `dir` resolve exactly as before. |
| 10 | + |
| 11 | + - `versionDirPath(files)` derives the directory from the dist's file map (content-addressed: identical bytes → identical directory → unchanged redeploys skip the copy entirely via the previous pin's `dir`) |
| 12 | + - The upload service treats `versions/**` as write-once: an upload whose bytes differ from the stored object fails with a new `CONFLICT` (409) error, mirroring the platform "version is burned" rule; identical bytes stay an idempotent skip |
| 13 | + - Serving classification treats everything under `versions/` as immutable (cache-control `immutable`), independent of filename hashing |
| 14 | + - Staged (in-image) dists ignore the directory — the staged namespace materializes flat, so staged resolution passes `{ ignoreDir: true }` |
| 15 | + |
| 16 | +- 0e2e7f9: Right-sized deploys: ui-only trains skip Railway, drift alarm (`bos verify`), restart advisory |
| 17 | + |
| 18 | + - **Ui-only deploys stop restarting the host** (#826 follow-up): the train diffs the published config against the live one, and when the change touches only SnapshotWatch-adopted surfaces (the ui slot, plugin ui overrides) the Railway leg skips — the soft-refresh banner carries the adoption instead of a restart. `--force-railway` overrides; any backend/host/config change keeps the full train; uncertainty reads cold. |
| 19 | + - **`bos verify`** — the drift alarm: for every published pin, SRI-verify the version manifest and hash every file it names against the served bytes (the manual curl+sha384 sweep, automated). Rot fails the command naming the file; being behind the parent's live release is advisory. Child deploys run it post-publish, non-blocking, with the report on the job summary. |
| 20 | + - **Restart advisory**: when a snapshot adopt moves a boot-frozen slot's pin (api/auth/plugin backends — the swap cannot adopt them), the host surfaces `restartRequired` at `/.well-known/version` and `/health` instead of silently serving the previous generation. |
| 21 | + - **Ui-only CI runs the smoke spec**: a diff confined to `ui/` replaces the full sharded browser regression matrix with the app-load spec (boot + hydration + runtime-config shape). |
| 22 | + |
| 23 | +### Patch Changes |
| 24 | + |
| 25 | +- ad8414f: Mount guards are ordinary beforeLoads supplied by the composing framework, replacing gate kinds. The mount registry now carries shape metadata only (`guarded`, `implemented`) and `constructTree` takes `guards` keyed by mount id — construction fails loudly when a guarded mount has none. The default wiring guards `authenticated` with `requireSession` and `admin` with `requireAdmin`, so a client-rendered full page load resolves the session through the query cache instead of reading a signed-in visitor as signed out (#818): full loads of authed pages no longer bounce through `/login`, and admin pages keep the `?redirect=` return path. Banned users now bounce at the mount, and signed-in non-admins on admin mounts land on `/dashboard`. The engine's invented `HostContext`/`GateUser` types are gone — it has no auth semantics. |
| 26 | +- Updated dependencies [e685c4c] |
| 27 | +- Updated dependencies [ad8414f] |
| 28 | + - every-plugin@3.0.0-rc.16 |
| 29 | + |
3 | 30 | ## 2.0.0-rc.40 |
4 | 31 |
|
5 | 32 | ### Minor Changes |
|
0 commit comments