59 lines
4.2 KiB
Markdown
59 lines
4.2 KiB
Markdown
|
|
# Feature release lifecycle experiment — 2026-09-26
|
||
|
|
|
||
|
|
Status: executed synthetic browser mechanism, editorial interpretation by Codex.
|
||
|
|
WP-0003 T01, following [source/deployment contrast](FeatureDeploymentBoundaries.md).
|
||
|
|
The [fixture and receipt](../experiments/feature-release/README.md) 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()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import#module_namespace_object),
|
||
|
|
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](../candidates/IndependentFeatureBoundary.md) 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](../walkthroughs/VC06-MicrofrontendEstate.md) 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.
|