Test activation conflicts and draft-preserving application reload

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
This commit is contained in:
tegwick 2026-09-26 23:30:15 +02:00
parent e34ec3fafe
commit f273a190f0
13 changed files with 1385 additions and 0 deletions

View file

@ -48,3 +48,30 @@ can already have side effects before that check. No backend writes, authenticati
API migrations, atomic/concurrent map updates, accessibility audit or safe reload of
unsaved work is modeled. The startup outage reflects this fixture's chosen dependency,
not an assertion that every independently released frontend must fail that way.
## Activation conflicts and safe update reload
[Review](../../reviews/ActivationConflictsAndReload.md) and
[receipt](conflicts-reload-results.json): three deterministic stale-writer HTTP cases
and nine reload scenarios in each browser, 21/21 expected observations.
```bash
PLAYWRIGHT_BROWSERS_PATH=/tmp/fep-playwright-browsers FEP_CHROMIUM_PATH=/path/to/chrome node conflicts-reload.mjs
```
Uses the same pinned dependencies/browsers as the original release experiment.
Default output `/tmp/fep-conflicts-reload.json`; `FEP_RESULT_PATH` overrides it.
Incomplete browser progress goes to `/tmp/fep-conflicts-reload-checkpoint.json`.
The earlier host, runner and receipts remain unchanged. The new reload-host.js is
an authored policy using sessionStorage, explicit user choices and schema checks.
C01 and R01 deliberately reproduce data loss from unsafe choices. C02 refetches and
reapplies a disjoint intent; C03 rejects a conflicting stale rollback. R02–R09 exercise
update deferral, preservation, storage refusal, incompatible schema, explicit discard,
unknown-outcome gating, edits during preflight and activation after preflight.
Activation comparison/replacement is atomic only within this single-process model;
its revision header and 409 response are not a full HTTP precondition implementation.
Storage refusal is injected. Preservation assumes retention is authorized and protects
only the tested same-tab reload. Native reload/tab close, crashes, real backend
outcome recovery, multiple tabs and automatic schema migration remain out of scope.