frontend-patterns/research/evolution/EvolutionReport.md

713 lines
47 KiB
Markdown
Raw Permalink Normal View History

# Language evolution report
Generated by `make evolution-report`; curated assessment date: 2026-09-28.
This is an evidence profile, not a completion percentage. Evidence presence does not establish full-contract recurrence or production fitness.
The baseline profiles are author-model assessments by Codex; they do not confer independent validation.
## Current corpus
18 candidates: 18 hypothesis.
| Evidence attached to a candidate | Candidates |
| --- | ---: |
| documentary | 18 |
| static-code | 7 |
| runtime | 10 |
Categories overlap. Runtime includes authored fixtures and negative controls. Family labels group related evidence; they are not counts of independent applications.
Independent human profile reviews: 0/18. Full-contract independent-use counts unassessed: 18/18.
## Change since baseline
Baseline baseline-2026-09-26; source revision `f273a190f0e08b8cfe0bb7260d0e7d889f1c090a`. Added: 1; removed: 0; shared candidates with changed content: 3; changed evidence/review assessments: 17; maturity transitions: 0.
The shared cohort is compared separately from additions. Changed text or evidence counts are not learning gains.
## Applicability and usefulness
| Case | State |
| --- | --- |
| [VC-01](../../research/walkthroughs/VC01-TransactionalAdministration.md) | synthetic draft |
| [VC-02](../../research/walkthroughs/VC02-OfflineFieldNotes.md) | synthetic draft |
| [VC-03](../../research/walkthroughs/VC03-ContentPublication.md) | provisional |
| [VC-04](../../research/plan/ValidationCases.md) | planned |
| [VC-05](../../research/plan/ValidationCases.md) | planned |
| [VC-06](../../research/walkthroughs/VC06-MicrofrontendEstate.md) | provisional |
| [VC-07](../../research/plan/ValidationCases.md) | planned |
| [VC-08](../../research/plan/ValidationCases.md) | planned |
| [VC-09](../../research/plan/ValidationCases.md) | planned |
| [VC-10](../../research/plan/ValidationCases.md) | planned |
Frozen pilot after adjudication: named 18/24; prose 18/24. Initial unsupported-claim count: 2 per condition (historical only); adjudicated flags remain qualitative, with no revised numeric count. Independent human validation: pending. Decision time: unknown. [Adjudication](../../research/evaluations/language-pilot-01/submitted-review-01/adjudication.md).
One frozen development pilot with submitted model review; six matched briefs. Equal aggregate scores do not establish equivalence. Stable anchors are consumed development cases, not fresh held-out tasks.
## Learning and effort
Ten selected retrospective outcomes (not a historical census), followed by prospectively registered bounded cycles. Retrospective effort remains unknown.
| Outcome | Entries (not independent discoveries) |
| --- | ---: |
| corroboration | 5 |
| inconclusive | 1 |
| merge | 0 |
| rejection | 0 |
| revision | 13 |
Cycles with recorded research effort: 7/19. Unknown effort is neither zero nor estimated from commits, tokens or assertion counts.
### Comparison readiness
Declared groups require a review of shared evidence tier, question granularity, evaluation and effort accounting. A matching label is not proof of comparability. [Machine-readable window audit](../../research/evolution/ComparisonWindows.json).
| Stream / declared group | Cycles | Positive effort | Unknown / zero effort | Qualitative review trigger | Complete-window effort comparison |
| --- | ---: | ---: | ---: | --- | --- |
| B / B-independent-navigation-source-v1 | 2 | 1 | 1 / 0 | pending | not ready |
| B / B-navigation-mechanism-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| D / D-sqlite-git-recovery-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| F / F-navigation-focus-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| F / F-navigation-ownership-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| cross-stream / CD-acceptance-projection-static-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| cross-stream / CD-authority-projection-documentary-v1 | 1 | 1 | 0 / 0 | pending | not ready |
| cross-stream / presentation-atomic-replication-v2 | 1 | 0 | 1 / 0 | pending | not ready |
Unknown or zero effort is not dropped to create a favorable window. Qualitative review can retain those cycles, but effort comparisons need an explicitly reviewed window with measured positive research time. No trend or plateau is inferred.
### Stream B / B-independent-navigation-source-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0014 | [protocol](../../research/evolution/cycles/2026-09-27-zulip-navigation.md) | revision | 6.345 | 9.46 |
| LEARN-0017 | [protocol](../../research/evolution/cycles/2026-09-27-zulip-target-lookup.md) | corroboration | unknown | unknown |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream B / B-navigation-mechanism-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0011 | [protocol](../../research/evolution/cycles/2026-09-27-navigation.md) | corroboration | 6.177 | 0.00 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream D / D-sqlite-git-recovery-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0018 | [protocol](../../research/evolution/cycles/2026-09-28-storage-receiver.md) | corroboration | 4.123 | 0.00 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream F / F-navigation-focus-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0012 | [protocol](../../research/evolution/cycles/2026-09-27-navigation-focus.md) | corroboration | 5.138 | 0.00 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream F / F-navigation-ownership-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0013 | [protocol](../../research/evolution/cycles/2026-09-27-navigation-ownership.md) | revision | 13.918 | 4.31 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream cross-stream / CD-acceptance-projection-static-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0016 | [protocol](../../research/evolution/cycles/2026-09-27-zulip-acceptance.md) | corroboration | 4.182 | 0.00 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream cross-stream / CD-authority-projection-documentary-v1
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0015 | [protocol](../../research/evolution/cycles/2026-09-27-authority-projection.md) | revision | 3.128 | 19.18 |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
### Stream cross-stream / presentation-atomic-replication-v2
| Cycle | Protocol | Outcome | Research minutes | Consequential outcome/hour |
| --- | --- | --- | ---: | ---: |
| LEARN-0019 | [protocol](../../research/evolution/cycles/2026-10-04-presentation-replication.md) | inconclusive | unknown | unknown |
One bounded question counts at most one consequential outcome. Corroboration and inconclusive work remain visible separately. Fewer than three declared cycles: qualitative review trigger pending; no trend assessment.
## Coherence and maintainability
Profile hashes and local references passed validation when this report was generated. That checks traceability, not source truth or external URL freshness.
Profiles with unknown last substantive review date: 0. Assessment dates record this metadata review, not a new substantive validation. Recorded substantive dates identify scoped author-model reviews, not renewed empirical or external-source freshness.
Coherence metrics (ambiguous selections, unjustified relations and overlap resolved): not measured. Conflict Copy / Explicit Reconciliation overlap remains an explicit open question.
Review backlog and evidence gaps remain in [FEP-WP-0009-m1-independent-validation](../../workplans/FEP-WP-0009-m1-independent-validation.md), [FEP-WP-0003-contrasting-schools](../../workplans/FEP-WP-0003-contrasting-schools.md), [FEP-WP-0006-language-evolution](../../workplans/FEP-WP-0006-language-evolution.md), [FEP-WP-0008-use-driven-improvement](../../workplans/FEP-WP-0008-use-driven-improvement.md).
## Pattern profiles
### CAND-0001 — Conflict Copy
[ConflictCopy](../../research/candidates/ConflictCopy.md) · draft / hypothesis
Preserve competing versions instead of silently losing one.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Joplin | Documented detected-note conflict copy. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
| documentary | Obsidian | Optional conflict-file mode, not default behavior. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
Open limits: Authorized retention and export are separate decisions. Complete contract recurrence and fault-tested deployed behavior remain unverified.
Superseded by: none recorded.
### CAND-0002 — Local Commit Boundary
[LocalCommitBoundary](../../research/candidates/LocalCommitBoundary.md) · draft / hypothesis
Define when a local change is durably accepted.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Ink & Switch | Local-first motivation. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
| documentary | Joplin | Local storage and synchronization architecture. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
| runtime | authored SQLite / Git recovery fixture | SQLite WAL/FULL: pre-commit process kill rolls back; post-commit kill preserves document and outbox. No power-loss/backup proof. | [StorageReceiverRecovery](../../research/reviews/StorageReceiverRecovery.md) |
Open limits: Process-kill recovery observed in SQLite fixture; power-loss, device-loss backup and full frontend contract remain unverified. Local acceptance is not off-device recovery.
Superseded by: none recorded.
### CAND-0003 — Pending Synchronization
[PendingSynchronization](../../research/candidates/PendingSynchronization.md) · draft / hypothesis
Keep accepted local intent visible until synchronization resolves.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Joplin | Per-item synchronization metadata. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
| runtime | authored SQLite / Git recovery fixture | SQLite atomic supersession/restart plus Git identity replay after lost local acknowledgement; one authored integration, no frontend recurrence. | [StorageReceiverRecovery](../../research/reviews/StorageReceiverRecovery.md) |
Open limits: Atomic supersession observed in SQLite fixture; concurrent in-flight supersession, UI states and general receiver retention remain unverified.
Superseded by: none recorded.
### CAND-0004 — Explicit Reconciliation
[ExplicitReconciliation](../../research/candidates/ExplicitReconciliation.md) · draft / hypothesis
Resolve divergent content while retaining provenance.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Joplin | Documented manual conflict resolution. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
| documentary | Obsidian | Conflict comparison workflow. | [LocalFirstEvidenceExpansion](../../research/reviews/LocalFirstEvidenceExpansion.md) |
Open limits: Atomic resolution/provenance UI not executed. Overlap with Conflict Copy remains an open merge question.
Superseded by: none recorded.
### CAND-0005 — Local Draft State
[LocalDraftState](../../research/candidates/LocalDraftState.md) · draft / hypothesis
Separate unfinished intent from refreshed authoritative data.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Kubernetes / GitLab / React Router | Rejection and pending-input mechanisms motivate recovery. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
| static-code | Zulip | Pinned composer draft storage; partial lifecycle. | [FrontendRecoveryImplementations](../../research/reviews/FrontendRecoveryImplementations.md) |
| static-code | Element / Matrix | Pinned composer draft restoration; partial lifecycle. | [FrontendRecoveryImplementations](../../research/reviews/FrontendRecoveryImplementations.md) |
| runtime | authored release fixture | Same-tab preservation/refusal/discard and post-navigation schema check. | [ActivationConflictsAndReload](../../research/reviews/ActivationConflictsAndReload.md) |
Open limits: No native-unload, crash, multiple-tab or access-revocation guarantee. Full base/draft/current merge contract is not verified in deployed frontends.
Superseded by: none recorded.
### CAND-0006 — Version-Checked Mutation
[VersionCheckedMutation](../../research/candidates/VersionCheckedMutation.md) · draft / hypothesis
Reject an operation whose observed base is stale.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Kubernetes | Conditional PUT; precise version mechanism. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
| documentary | GitLab | Optional last_commit_id; different failure surface. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
| runtime | authored release fixture | Related conditional activation-map mechanism in one process, not the full frontend pattern. | [ActivationConflictsAndReload](../../research/reviews/ActivationConflictsAndReload.md) |
| runtime | authored SQLite / Git recovery fixture | Actual Git receive-pack rejects a forced divergent branch update; related ancestry mechanism, not exact-version frontend semantics. | [StorageReceiverRecovery](../../research/reviews/StorageReceiverRecovery.md) |
Open limits: Distributed atomicity and complete frontend recurrence remain unverified. Refetch does not authorize overwriting conflicting intent.
Superseded by: none recorded.
### CAND-0007 — Mutation Outcome Tracking
[MutationOutcomeTracking](../../research/candidates/MutationOutcomeTracking.md) · draft / hypothesis
Retain operation identity when transport outcome is uncertain.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Stripe | Idempotency mechanism. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
| documentary | React Router | Cancellation does not imply server rollback. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
| static-code | Zulip | Pinned send/recovery state. | [FrontendRecoveryImplementations](../../research/reviews/FrontendRecoveryImplementations.md) |
| static-code | Element / Matrix | Pinned client and SDK transaction/echo paths. | [FrontendRecoveryImplementations](../../research/reviews/FrontendRecoveryImplementations.md) |
| runtime | Element / Matrix | Real SDK with synthetic transport: lost acknowledgement, identity reuse and authoritative echo. | [MatrixRecoveryExperiment](../../research/reviews/MatrixRecoveryExperiment.md) |
| runtime | authored SQLite / Git recovery fixture | Actual Git same-commit replay is a no-op, reachable identity survives GC, fresh identity repeats intent; no arbitrary operation ledger. | [StorageReceiverRecovery](../../research/reviews/StorageReceiverRecovery.md) |
Open limits: No production server deduplication or complete retention-window guarantee. Cancelling local UI is not remote compensation.
Superseded by: none recorded.
### CAND-0008 — Invalidate and Reproject
[InvalidateAndReproject](../../research/candidates/InvalidateAndReproject.md) · draft / hypothesis
Refresh a projection after mutation without equating acceptance and visibility.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | React Router | Concurrency and pending-state guidance. | [TransactionalEvidenceExpansion](../../research/reviews/TransactionalEvidenceExpansion.md) |
Open limits: Read-your-write and acceptance/refresh distinction still proposed. No independent deployed full-contract observation.
Superseded by: none recorded.
### CAND-0009 — URL-addressable State
[URLAddressableState](../../research/candidates/URLAddressableState.md) · draft / hypothesis
Make a navigable state reconstructible from its URL.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | htmx | History behavior and history-cache misses. | [NavigationRenderingEvidence](../../research/reviews/NavigationRenderingEvidence.md) |
| documentary | Web platform | pushState changes history, not server dereferenceability. | [NavigationRenderingEvidence](../../research/reviews/NavigationRenderingEvidence.md) |
| runtime | htmx in authored public-catalog fixture | NH01–NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate. | [NavigationHistoryExperiment](../../research/reviews/NavigationHistoryExperiment.md) |
| runtime | htmx in authored public-catalog fixture | NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter. | [NavigationOwnershipExperiment](../../research/reviews/NavigationOwnershipExperiment.md) |
| static-code | Zulip | ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence. | [ZulipNavigationSourceStudy](../../research/reviews/ZulipNavigationSourceStudy.md) |
| static-code | Zulip | ZT01-ZT04: traced target-message-lookup and anchor-navigation continuations to their unconditional completion points; no captured-list guard or test coverage located. No reproduction or application execution. | [ZulipTargetLookupCallPath](../../research/reviews/ZulipTargetLookupCallPath.md) |
Open limits: Independent application recurrence and human/AT validation remain unverified. Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open. Zulip's target-lookup and anchor-navigation continuations have a traced absence of a captured-current-list guard and no located test coverage for a stale-navigation race (unreproduced, not a defect claim); deferred editing focus and search callback wiring remain separately unverified.
Superseded by: none recorded.
### CAND-0010 — Progressive Enhancement
[ProgressiveEnhancement](../../research/candidates/ProgressiveEnhancement.md) · draft / hypothesis
Keep essential actions usable when enhancement is unavailable.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | htmx | Boosted links and forms. | [NavigationRenderingEvidence](../../research/reviews/NavigationRenderingEvidence.md) |
| documentary | SvelteKit | Form actions and rendering/page options. | [NavigationRenderingEvidence](../../research/reviews/NavigationRenderingEvidence.md) |
| runtime | htmx in authored public-catalog fixture | NH01–NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate. | [NavigationHistoryExperiment](../../research/reviews/NavigationHistoryExperiment.md) |
| runtime | htmx in authored public-catalog fixture | NF01–NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech. | [NavigationFocusExperiment](../../research/reviews/NavigationFocusExperiment.md) |
| runtime | htmx in authored public-catalog fixture | NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter. | [NavigationOwnershipExperiment](../../research/reviews/NavigationOwnershipExperiment.md) |
| static-code | Zulip | ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence. | [ZulipNavigationSourceStudy](../../research/reviews/ZulipNavigationSourceStudy.md) |
| static-code | Zulip | ZT01-ZT04: traced target-message-lookup and anchor-navigation continuations to their unconditional completion points; no captured-list guard or test coverage located. No reproduction or application execution. | [ZulipTargetLookupCallPath](../../research/reviews/ZulipTargetLookupCallPath.md) |
Open limits: Independent application recurrence and human/AT validation remain unverified. Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open. Zulip's target-lookup and anchor-navigation continuations have a traced absence of a captured-current-list guard and no located test coverage for a stale-navigation race (unreproduced, not a defect claim); deferred editing focus and search callback wiring remain separately unverified.
Superseded by: none recorded.
### CAND-0011 — Presentation Model
[PresentationModel](../../research/candidates/PresentationModel.md) · draft / hypothesis
Separate presentation decisions from view mechanisms.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Fowler | Named pattern and illustrative model/view discussion. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
Open limits: No executed model/view integration or independently reviewed full-contract use.
Superseded by: none recorded.
### CAND-0012 — Derived State
[DerivedState](../../research/candidates/DerivedState.md) · draft / hypothesis
Compute a result from explicit authoritative inputs.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Redux | Selector guidance, not a requirement for a global store. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
Open limits: Snapshot coherence and changed-locale cache test still planned.
Superseded by: none recorded.
### CAND-0013 — Vertical Feature Slice
[VerticalFeatureSlice](../../research/candidates/VerticalFeatureSlice.md) · draft / hypothesis
Group a capability across UI, state and behavior with explicit interfaces.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Feature-Sliced Design | Layer/slice and public-interface guidance. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
| static-code | Feature-Sliced Design | Pinned todo-app interfaces coexist with one application build. | [FeatureDeploymentBoundaries](../../research/reviews/FeatureDeploymentBoundaries.md) |
Open limits: Build/import enforcement not executed. Feature organization does not establish independent activation.
Superseded by: none recorded.
### CAND-0014 — Islands of Interactivity
[IslandsOfInteractivity](../../research/candidates/IslandsOfInteractivity.md) · draft / hypothesis
Activate selected interactive regions within a document.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Astro | Client-island mechanism and execution placement. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
Open limits: No executed island fixture, performance comparison or complete recurrence study.
Superseded by: none recorded.
### CAND-0015 — Failure Boundary
[FailureBoundary](../../research/candidates/FailureBoundary.md) · draft / hypothesis
Contain specified failure classes while preserving useful neighboring work.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | React | Error boundary scope and exclusions. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
| runtime | React | Real package in authored host: render/event/request distinction and fallback escalation. | [BoundaryRecoveryExperiment](../../research/reviews/BoundaryRecoveryExperiment.md) |
Open limits: Synthetic host, not full application recurrence. Boundary cannot imply containment for all asynchronous failures.
Superseded by: none recorded.
### CAND-0016 — Focus Return
[FocusReturn](../../research/candidates/FocusReturn.md) · draft / hypothesis
Restore meaningful focus after a temporary interaction ends.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | WAI-ARIA APG | Dialog focus obligations. | [PatternBreadthExpansion](../../research/reviews/PatternBreadthExpansion.md) |
| static-code | Radix | Pinned layer/listener ownership implementation. | [NestedDismissalIsolation](../../research/reviews/NestedDismissalIsolation.md) |
| runtime | Radix | Authored fixture: raw 20/24 versus routed 24/24; browser/build limits retained. | [NestedOwnershipRouting](../../research/reviews/NestedOwnershipRouting.md) |
| runtime | htmx in authored public-catalog fixture | NF01–NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech. | [NavigationFocusExperiment](../../research/reviews/NavigationFocusExperiment.md) |
| runtime | htmx in authored public-catalog fixture | NO01–NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter. | [NavigationOwnershipExperiment](../../research/reviews/NavigationOwnershipExperiment.md) |
| static-code | Zulip | ZN01–ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence. | [ZulipNavigationSourceStudy](../../research/reviews/ZulipNavigationSourceStudy.md) |
Open limits: One implementation family; repeated trials are not independent uses. Animated exits and competing owners remain untested; no production repair claim. Route ownership is a contrast, not independent modal recurrence; AT speech and broader history/lifecycle cases remain unverified. Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership.
Superseded by: none recorded.
### CAND-0017 — Independent Feature Boundary
[IndependentFeatureBoundary](../../research/candidates/IndependentFeatureBoundary.md) · draft / hypothesis
Separate feature release, activation and session transition contracts.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | single-spa / webpack | Mechanism documentation, not deployed independence proof. | [FeatureDeploymentBoundaries](../../research/reviews/FeatureDeploymentBoundaries.md) |
| static-code | react-microfrontends examples | Root config/navbar are one example family with shared startup gating. | [FeatureDeploymentBoundaries](../../research/reviews/FeatureDeploymentBoundaries.md) |
| runtime | authored release fixture | Publication/activation/rollback across fresh, loaded and lazy sessions. | [FeatureReleaseExperiment](../../research/reviews/FeatureReleaseExperiment.md) |
| runtime | authored release fixture | Conditional activation updates and safe reload policies, including negative controls. | [ActivationConflictsAndReload](../../research/reviews/ActivationConflictsAndReload.md) |
Open limits: No upstream deployment or real team/release-independence validation. Distributed atomicity, retention authorization and native-unload/crash behavior remain open.
Superseded by: none recorded.
### CAND-0018 — Capability Contract Boundary
[CapabilityContractBoundary](../../research/candidates/CapabilityContractBoundary.md) · draft / hypothesis
Declare a UI capability's semantic surface separately from its runtime-isolation mechanism.
| Evidence | Family | Scope | Review |
| --- | --- | --- | --- |
| documentary | Web Components | CC01: Custom Elements observedAttributes/lifecycle callback mechanism, narrower than a full semantic contract. | [CapabilityContractSources](../../research/reviews/CapabilityContractSources.md) |
| documentary | webpack | CC02: Module Federation expose/consume module and share-scope dependency-negotiation mechanism, one layer below any UI-facing contract. | [CapabilityContractSources](../../research/reviews/CapabilityContractSources.md) |
Open limits: No known use of an explicit capability contract, as distinct from its substrate mechanisms, has been located. Enforcement, versioning and compatibility checking are unverified; a contract with no tooling is only documentation. Only one family per substrate mechanism inspected; no independent recurrence.
Superseded by: none recorded.
## Recorded learning
### LEARN-0001 — What do pinned recovery implementations establish?
2026-09-25 · stream D · retrospective · revision
Before: Documentary motivation did not locate draft/outcome mechanisms in frontend code.
Conclusion: Zulip and Element locate partial draft/outcome mechanisms; complete pattern recurrence is still unknown.
Evidence: [FrontendRecoveryImplementations](../../research/reviews/FrontendRecoveryImplementations.md).
Remaining uncertainty: Deployed full lifecycle remains unverified.
Supersedes: none recorded.
### LEARN-0002 — Does cancellation or a transport error settle mutation outcome?
2026-09-25 · stream D · retrospective · revision
Before: Recovery identity and authoritative echo required executable checks.
Conclusion: Synthetic transport with the real Matrix SDK distinguishes replay identity, duplicate commits and authoritative echo.
Evidence: [MatrixRecoveryExperiment](../../research/reviews/MatrixRecoveryExperiment.md).
Remaining uncertainty: No real server deduplication guarantee.
Supersedes: none recorded.
### LEARN-0003 — Does naming patterns improve the frozen pilot decisions?
2026-09-26 · stream cross-stream · retrospective · revision
Before: Initial editorial scores were 21/24 named and 19/24 prose.
Conclusion: Submitted model review adjudication yields 18/24 in each condition; this does not establish equivalence or a presentation benefit.
Evidence: [adjudication](../../research/evaluations/language-pilot-01/submitted-review-01/adjudication.md).
Remaining uncertainty: Independent human validation pending. Historical effort unknown; this entry does not allocate whole-pilot telemetry.
Supersedes: none recorded.
### LEARN-0004 — Which recovery recommendations overstate their guarantees?
2026-09-26 · stream D · retrospective · revision
Before: Shared guidance left retention/export policy, cancellation and local backup boundaries insufficiently explicit.
Conclusion: Guidance now separates authorization, remote compensation, atomic supersession and off-device backup.
Evidence: [SharedGuidanceRevision](../../research/reviews/SharedGuidanceRevision.md).
Remaining uncertainty: Editorial correction is not new production evidence.
Supersedes: none recorded.
### LEARN-0005 — What does URL/history and enhancement documentation actually promise?
2026-09-26 · stream B · retrospective · revision
Before: Navigation and rendering seeds lacked explicit dereferenceability and fallback distinctions.
Conclusion: Developed two hypotheses separating address-bar updates from direct loads, and HTML delivery from usable no-script actions.
Evidence: [NavigationRenderingEvidence](../../research/reviews/NavigationRenderingEvidence.md).
Remaining uncertainty: Navigation/history/cache runtime checks remain pending.
Supersedes: none recorded.
### LEARN-0006 — Why can immediate nested dismissal close the outer task?
2026-09-26 · stream F · retrospective · revision
Before: The first fixture exposed a timing failure with unresolved ownership.
Conclusion: Trace locates stale Escape listener ownership despite inner registration/focus; a guard can lose input.
Evidence: [BoundaryRecoveryExperiment](../../research/reviews/BoundaryRecoveryExperiment.md), [NestedDismissalIsolation](../../research/reviews/NestedDismissalIsolation.md).
Remaining uncertainty: Readiness waits are not a public product repair.
Supersedes: none recorded.
### LEARN-0007 — Can event-time ownership route dismissal without a settling delay?
2026-09-26 · stream F · retrospective · revision
Before: Isolation supplied a mechanism but no lifecycle-safe candidate routing experiment.
Conclusion: Controlled fixture routed 24/24 versus raw 20/24; initial measurement error and corrected results retained.
Evidence: [NestedOwnershipRouting](../../research/reviews/NestedOwnershipRouting.md).
Remaining uncertainty: Animated exit and competing-owner coverage remain open.
Supersedes: none recorded.
### LEARN-0008 — Are feature organization and independent activation the same boundary?
2026-09-26 · stream E · retrospective · revision
Before: The feature-slice hypothesis needed a source-layout/release contrast.
Conclusion: Pinned examples distinguish organizational slicing from activation contracts; added Independent Feature Boundary.
Evidence: [FeatureDeploymentBoundaries](../../research/reviews/FeatureDeploymentBoundaries.md).
Remaining uncertainty: Shared startup dependencies still couple nominally separate features.
Supersedes: none recorded.
### LEARN-0009 — Does publication or rollback update every session?
2026-09-26 · stream E · retrospective · revision
Before: Static source review could not establish loaded/lazy-session behavior.
Conclusion: Native-module experiment distinguishes publication, activation and already-bound sessions; artifact retirement breaks old lazy sessions.
Evidence: [FeatureReleaseExperiment](../../research/reviews/FeatureReleaseExperiment.md).
Remaining uncertainty: No CDN or upstream deployment validation.
Supersedes: none recorded.
### LEARN-0010 — How do stale activation writers and unfinished drafts constrain updates?
2026-09-26 · stream E · retrospective · revision
Before: Release experiment left activation conflicts and reload policy unexecuted.
Conclusion: Conditional replacement rejects stale writers; explicit reload policies preserve or refuse transition, with schema recheck after navigation.
Evidence: [ActivationConflictsAndReload](../../research/reviews/ActivationConflictsAndReload.md).
Remaining uncertainty: One-process atomicity; no native unload, crash or real remote-outcome coverage.
Supersedes: none recorded.
### LEARN-0011 — Can a public route preserve selection and complete-document availability across native/enhanced entry, history and HTTP caching?
2026-09-27 · stream B · prospective · corroboration
Before: Native href/GET contracts plus representation-aware routing and cache selection should satisfy this narrow obligation; documentary support lacked runtime checks.
Conclusion: Corroborated in pinned htmx fixture: native and history paths work; missing Vary reproduces fragment-as-document reuse in both browsers. Existing obligations stand; no new pattern or promotion.
Evidence: [NavigationHistoryExperiment](../../research/reviews/NavigationHistoryExperiment.md), [result](../../research/experiments/navigation-history/result.json), [2026-09-27-navigation-effort](../../research/evolution/cycles/2026-09-27-navigation-effort.json).
Remaining uncertainty: One authored application, no independent recurrence or usefulness gain. Accessibility, delayed scripts, interrupted transport, real intermediaries and offline availability remain open.
Supersedes: none recorded.
### LEARN-0012 — Does enhanced route replacement need explicit continuation and feedback policy that respects changed focus ownership?
2026-09-27 · stream F · prospective · corroboration
Before: Native controls alone do not establish enhanced focus/feedback semantics; delayed responses should respect focus moved to another surviving task. Modal return is not automatically route continuation.
Conclusion: Corroborated in 22 cases: raw same-ID link focus survives but this fragment contract leaves stale title and silent failure; authored heading/status policy works and preserves newer search focus. No AT speech or universal heading policy established.
Evidence: [NavigationFocusExperiment](../../research/reviews/NavigationFocusExperiment.md), [focus-result](../../research/experiments/navigation-history/focus-result.json), [2026-09-27-navigation-focus-effort](../../research/evolution/cycles/2026-09-27-navigation-focus-effort.json).
Remaining uncertainty: Author-model DOM evidence, no human/AT validation or independent recurrence. Delayed history focus, competing requests, delayed scripts and interrupted enhancement remain open.
Supersedes: none recorded.
### LEARN-0013 — Can obsolete history/navigation completions affect newer intent, and does separating completion ownership from focus ownership prevent it?
2026-09-27 · stream F · prospective · revision
Before: The single-response continuation policy preserved newer search focus but left competing history/success/error completions unresolved; focus-at-swap alone might not be sufficient.
Conclusion: Revise operational guidance: validate navigation ownership before content/URL/title/feedback effects, including stale errors and newer failure, independently of focus permission. Prior policy misses obligations in 12/12 adversarial rows; authored guard meets 12/12. Pause fixture work for independent source contrast.
Evidence: [NavigationOwnershipExperiment](../../research/reviews/NavigationOwnershipExperiment.md), [NavigationThreadReview](../../research/reviews/NavigationThreadReview.md), [ownership-result](../../research/experiments/navigation-history/ownership-result.json), [2026-09-27-navigation-ownership-effort](../../research/evolution/cycles/2026-09-27-navigation-ownership-effort.json).
Remaining uncertainty: One authored htmx family and author-model review, not production recurrence or AT validation. History adapter is pinned implementation-dependent; pending-state, multiple-miss and lifecycle limits remain open. Three distinct protocols are not a comparable diminishing-returns window.
Supersedes: none recorded.
### LEARN-0014 — Where does independently developed Zulip scope navigation/search result and focus applicability, and where does our model fail to establish a guarantee?
2026-09-27 · stream B · prospective · revision
Before: The authored navigation generation guard protected current-view and focus effects, but independent application recurrence and alternative ownership/cache policies were unverified.
Conclusion: Revise guidance toward per-effect applicability: pinned Zulip preserves noncurrent cache data while guarding main selected-view continuations by list identity. Make client-fragment addressability explicit without inferring no-script enhancement. Shared feedback, auxiliary callbacks and deferred focus limit the inference.
Evidence: [ZulipNavigationSourceStudy](../../research/reviews/ZulipNavigationSourceStudy.md), [ZulipNavigationSources](../../research/reviews/ZulipNavigationSources.json), [2026-09-27-zulip-navigation-effort](../../research/evolution/cycles/2026-09-27-zulip-navigation-effort.json).
Remaining uncertainty: Static targeted ranges in twelve files, no Zulip runtime/upstream test execution or independent human/AT review. Auxiliary lookup/anchor continuations, deferred focus and callback wiring need a bounded follow-up before any race claim. One Zulip family supplies partial mechanisms, not full-contract recurrence or a no-script guarantee.
Supersedes: none recorded.
### LEARN-0015 — Do the six authority/projection seeds denote reusable patterns or a mixture of scoped acceptance, projection placement and delivery choices?
2026-09-27 · stream cross-stream · prospective · revision
Before: Authority is scoped and acknowledgement levels differ, but six seed names lack developed contracts and their projection/delivery relationships are not explicitly compared.
Conclusion: Revise the research decision aid to separate scoped acceptance, projection computation and delivery timing with compatibility constraints. Six seed dispositions and two synthetic traces; retain all seeds, zero new drafts or candidate maturity changes.
Evidence: [AuthorityProjectionComparison](../../research/reviews/AuthorityProjectionComparison.md), [2026-09-27-authority-projection-effort](../../research/evolution/cycles/2026-09-27-authority-projection-effort.json).
Remaining uncertainty: Six living primary documents across four families, not independent full-contract implementations; exact revisions unknown. Synthetic VC-01/02 reasoning is not execution or demonstrated usefulness; authority/merge/storage and phase-specific recovery contracts still need application evidence. Existing candidate profiles unchanged; five prospective groups are not a comparable learning trend.
Supersedes: none recorded.
### LEARN-0016 — Does the six-question authority/projection aid distinguish local editable content, remote shared acceptance and subsequent projection in a pinned application?
2026-09-27 · stream cross-stream · prospective · corroboration
Before: Scoped acceptance, projection location and delivery schedule are separate questions with compatibility constraints; a local display need not establish shared acceptance.
Conclusion: Corroborated in pinned Zulip content editing: conditional local Markdown echo precedes remote validation; locked optional content checks and server rendering precede save/event scheduling; HTTP and event application are distinct paths. Same displayed object can carry tentative content. No candidate or maturity change.
Evidence: [ZulipAcceptanceProjection](../../research/reviews/ZulipAcceptanceProjection.md), [ZulipAcceptanceSources](../../research/reviews/ZulipAcceptanceSources.json), [2026-09-27-zulip-acceptance-effort](../../research/evolution/cycles/2026-09-27-zulip-acceptance-effort.json).
Remaining uncertainty: Ten selected source/test files from one existing Zulip family, no application/database/upstream test execution or full-contract recurrence. Response/event ordering, lost response after acceptance and current-edit ownership need preregistered reproduction; no defect or safe-replay claim. Six prospective groups are not a comparable trend; original human and milestone gates remain open.
Supersedes: none recorded.
### LEARN-0017 — Do Zulip's target-message lookup and anchor-navigation fetch continuation guard against a stale navigation that occurred while the request was in flight, the way the main narrow-fetch continuation (ZN02) does?
2026-09-27 · stream B · prospective · corroboration
Before: ZN07 located both callbacks and noted no visible captured-current-list guard, but did not trace their callers or check test coverage.
Conclusion: Traced both continuations to their concrete completion points: process_result calls opts.cont unconditionally, and neither the target-lookup channel.get nor load_messages_around_anchor supplies opts.msg_list, so neither participates in the opt-in list-identity guard that message_fetch.ts implements for other callers. No located test exercises a stale-navigation scenario for either path.
Evidence: [ZulipTargetLookupCallPath](../../research/reviews/ZulipTargetLookupCallPath.md), [ZulipTargetLookupSources](../../research/reviews/ZulipTargetLookupSources.json), [2026-09-27-zulip-target-lookup-effort](../../research/evolution/cycles/2026-09-27-zulip-target-lookup-effort.json).
Remaining uncertainty: Static source trace only; no application, database or upstream test executed, and no race actually reproduced. show() performs its own state reset on entry, so a stale re-entry's externally observable effect is unverified without execution. Second cycle in comparison group B-independent-navigation-source-v1; still short of three comparable cycles, and the workplan's rule against manufacturing cycles to reach that count still applies.
Supersedes: none recorded.
### LEARN-0018 — Which process-recovery obligations can SQLite plus actual Git receive-pack satisfy, and where does object identity fail to supply an operation receipt?
2026-09-28 · stream D · prospective · corroboration
Before: Atomic local intent/outbox updates and stable receiver identity support recovery within explicit transaction, ancestry and retention boundaries.
Conclusion: Nine checks corroborate atomic SQLite process recovery, Git replay and server ancestry refusal; split-transaction and fresh-identity negative controls retain the limits. One authored integration, not a full frontend use.
Evidence: [StorageReceiverRecovery](../../research/reviews/StorageReceiverRecovery.md), [result](../../research/experiments/storage-receiver/result.json), [2026-09-28-storage-receiver-effort](../../research/evolution/cycles/2026-09-28-storage-receiver-effort.json).
Remaining uncertainty: Power-loss, device-loss backup, remote durability and arbitrary operation-ID retention remain unverified. No full frontend contract, independent human validation or M1/M2/M3 acceptance. New runtime group is not comparable with static studies; no learning trend.
Supersedes: none recorded.
### LEARN-0019 — Does named organization change constraint/recovery recommendations versus identical guidance under numbered headings on fresh authored variants?
2026-10-04 · stream cross-stream · prospective · inconclusive
Before: Consumed pilot-01 model adjudication scored 18/24 in each condition; naming benefit and equivalence remain unestablished.
Conclusion: The preregistered 12-attempt run produced no retained answers. All six pairs are excluded; no quality comparison or naming conclusion is possible. Endpoint health checks failed inside and outside the sandbox.
Evidence: [execution-summary](../../research/evaluations/language-replication-02/execution-summary.json), [availability-review](../../research/evaluations/language-replication-02/availability-review.json), [README](../../research/evaluations/language-replication-02/README.md).
Remaining uncertainty: No usable generation or empirical rating; failed attempts are not zero scores. Provider usage and billing are unknown; no retries or additional calls authorized. Active research effort unknown; request elapsed time measures failed execution only. Independent human validation and real consumer outcomes remain absent; this new group cannot close a comparable three-cycle window.
Supersedes: none recorded.