Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
4.2 KiB
Feature release lifecycle experiment — 2026-09-26
Status: executed synthetic browser mechanism, editorial interpretation by Codex. WP-0003 T01, following source/deployment contrast. The fixture and receipt record seven cases in two browsers, 14/14 expected observations. Seventeen hypotheses remain unchanged in maturity; no production deployment, operational team independence or recurrence is established. No model calls were needed.
Evidence and provenance
SRC-0036 is our native-module host and versioned feature fixtures, executed with Playwright 1.63.0, Chromium 151.0.7922.34 and Firefox 155.0. Source/lock hashes are in the result receipt; browser hashes and package integrity are in provenance.json. Every response uses no-store, and the loopback server serves no external resources.
SRC-0037: MDN import(), Module namespace object, accessed 2026-09-26, living revision unknown. Its description of reuse after successful module loading provides context for distinguishing module identity from HTTP caching. We do not generalize our document-map snapshot policy to all loaders or dynamic import-map update strategies.
Observations, not deployment guarantees
| Evidence | Result | Pattern implication |
|---|---|---|
| X01 | Publishing R2 alone leaves new pages on R1 | Artifact availability and activation are separate |
| X02 | Fresh page loads R2; old loaded/lazy pages load or retain R1; A1 unchanged | Compatible feature activation can coexist with an unchanged host and neighbor in this fixture; old-session binding matters even before first feature use |
| X03 | R3 is evaluated but mounting is rejected for host API mismatch; A1 works | Post-import contract checks can prevent incompatible mounting, but cannot undo module side effects or provide security isolation |
| X04 | Missing Reports module yields local error while Account navigation works | Host-level load handling is distinct from a component rendering boundary |
| X05 | Binding rollback changes a fresh page to R1 while an open page remains R2; reload selects R1 | Rollback needs a declared session scope; binding update alone is not hot replacement |
| X06 | Removing R1 breaks the old lazy session but not one that already loaded it | Artifact retention must account for delayed first loads from supported older documents |
| X07 | Shared startup import failure keeps both actions disabled, before any feature load | Separate artifacts do not eliminate dependencies on startup-critical shared resources |
X03, X04, X06 and X07 include deliberately observed failures. A “pass” means the asserted behavior occurred, not that the experience is acceptable. The version gate is our fixture code, not a universal browser, single-spa or federation guarantee. The R3 declaration is intentionally simple; real API compatibility is not reducible to equality of one number. Test outcomes do not prove compatibility with arbitrary host/backend versions or that deployment changes are applied atomically.
Candidate and walkthrough correction
Independent Feature Boundary should name three lifetimes separately: retained artifact, binding chosen for a session, and module instance already evaluated in that session. Retiring an artifact based only on the current global binding can invalidate an older page's later load.
VC-06 now has executable support for its load/activation/rollback distinction in this small model. Its accessibility, real-system compatibility, authoritative writes and independent assessment remain open. The earlier pinned examples were not run; their source observations remain separate. Keep the pattern a hypothesis and the walkthrough provisional.
Next under WP-0003 T01: declare an old-session support/retention policy, then test activation-map concurrency and safe reload with unfinished work before making a production recommendation. Navigation/history/cache evidence remains pending. Avoid turning this model into a release platform merely to close the research question.