frontend-patterns/research/catalog/SourceCatalog.md
tegwick 3ce54fb2d2 Separate authority projection and delivery in measured seed review
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
2026-09-27 01:57:30 +02:00

225 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Source Catalog
## Identified primary sources
| ID | Source and edition | State | Prepared input |
| --- | --- | --- | --- |
| SRC-0001 | Ryan Carniato, [The Grand Unifying Architecture of Frontend](https://dev.to/playfulprogramming/the-grand-unifying-architecture-of-frontend-bhk); web edition accessed 2026-09-24; displayed Sep 22, year unverified | extracted; [initial manual review](../cases/CarniatoGrandUnifyingArchitecture.md); live draft completed; admission rejected ([review](../reviews/LLMConnectPilot.md)) | [Authority and feedback packet](../bench/infospaces/carniato-authority-01/artifacts/sources/source.md) |
| SRC-0002 | Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, Mark McGranaghan, [Local-first software](https://www.inkandswitch.com/essay/local-first/); April 2019 web essay; DOI 10.1145/3359591.3359737; accessed 2026-09-24 | extracted; [initial manual review](../cases/LocalFirstAuthority.md); live bounded investigation completed; no candidates justified ([review](../reviews/TruncationDiagnosis.md)) | [Local authority packet](../bench/infospaces/local-first-authority-01/artifacts/sources/source.md) |
| SRC-0003 | Joplin, [Architecture](https://joplinapp.org/help/dev/spec/architecture/); living docs accessed 2026-09-25, release/date unknown | extracted; E04 in [expansion review](../reviews/LocalFirstEvidenceExpansion.md) | Manual located review |
| SRC-0004 | Joplin, [Synchronisation](https://joplinapp.org/help/dev/spec/sync/); living docs accessed 2026-09-25, release/date unknown | extracted; E05–E06 in expansion review | Manual located review |
| SRC-0005 | Joplin, [What is a conflict?](https://joplinapp.org/help/apps/conflict/); living docs accessed 2026-09-25, release/date unknown | extracted; live run completed, editorial revision needed | [Conflict packet](../bench/sources/joplin-conflicts.md) |
| SRC-0006 | Obsidian, [Troubleshoot Sync](https://obsidian.md/help/sync/troubleshoot); living docs accessed 2026-09-25, release/date unknown | extracted; live run completed, proposed relations rejected | [Conflict packet](../bench/sources/obsidian-conflicts.md) |
| SRC-0007 | Obsidian, [Back up files](https://obsidian.md/help/backup); living docs accessed 2026-09-25, release/date unknown | extracted; E11–E12 in expansion review | Manual located review |
| SRC-0008 | Kubernetes, [API Concepts](https://kubernetes.io/docs/reference/using-api/api-concepts/); living docs accessed 2026-09-25, revision unknown | T01; bounded live extraction and editorial review | [Stale-write packet](../bench/sources/kubernetes-stale-writes.md) |
| SRC-0009 | GitLab, [Repository files API](https://docs.gitlab.com/api/repository_files/); living docs accessed 2026-09-25, revision unknown | T02; manual located review | [Transactional review](../reviews/TransactionalEvidenceExpansion.md) |
| SRC-0010 | Stripe, [Idempotent requests](https://docs.stripe.com/api/idempotent_requests); living docs accessed 2026-09-25, revision unknown | T03; manual located review | Transactional review |
| SRC-0011 | React Router, [Network Concurrency Management](https://reactrouter.com/explanation/concurrency); living docs accessed 2026-09-25, revision unknown | T04; manual located review | Transactional review |
| SRC-0012 | React Router, [Pending UI](https://reactrouter.com/start/framework/pending-ui); living docs accessed 2026-09-25, revision unknown | T05; manual located review | Transactional review |
Queued does not mean reviewed. Bibliography and hashes live in each workspace's
source artifact and manifest. [Preparation review](../reviews/SchemaAndSourcePreparation.md)
records selection, provenance limits and remaining work. Claim IDs will resolve
inside completed source reviews; preparation packets do not establish a pattern.
## Source families to investigate
| Family | Representative sources | Research purpose |
|---|---|---|
| Pattern languages | Christopher Alexander, Hillside/PLoP literature | Pattern form, relations, generative sequences |
| GUI architecture | Martin Fowler, MVC/MVP/Presentation Model | Presentation/domain/state separation |
| Unidirectional state | Flux, Redux, Elm | State transition and dependency direction |
| Hypermedia | REST, HTML forms, HTMX | Navigation, mutation, server projection |
| Rendering | web.dev, framework docs, Patterns.dev | CSR/SSR/SSG/hydration/islands/streaming |
| Local-first | Ink & Switch and related work | Local authority, sync, conflict handling |
| Distributed state | CRDT/event sourcing/sync literature | Reconciliation and replication |
| Modularity | Feature-Sliced Design | Feature boundaries and dependency rules |
| Organizational architecture | Microfrontend literature | Independent ownership/deployment |
| Quality | WCAG, progressive enhancement, web performance | Cross-cutting architectural forces |
## Catalog policy
Each source should eventually capture:
- source identity,
- date/version,
- scope,
- vocabulary used,
- candidate patterns,
- dominant forces,
- assumptions,
- contradictions,
- known implementations,
- evidence quality.
2026-09-24: initial authority-focused reviews are recorded as extracted. They have
not passed a full-source or independent review gate. Live calls failed before any
artifact generation. See [AuthorityPilot](../reviews/AuthorityPilot.md) for findings,
execution evidence and limitations.
2026-09-25: local-first `-06` completed after replacing padded claim tables with
compact records. Its bounded negative result does not complete full-source review.
Source state remains extracted; recurrence and independent implementations remain open.
## Pinned frontend implementations — 2026-09-25
SRC-0013 Zulip, SRC-0014 Element Web, SRC-0015 Matrix JS SDK and SRC-0016 Matrix
client-server specification v1.15 are inspected in the
[frontend recovery review](../reviews/FrontendRecoveryImplementations.md).
The [manifest](../reviews/FrontendRecoverySources.json) records exact revisions,
file URLs and SHA-256 hashes. State: bounded static review; no runtime validation.
Element and its SDK are one implementation family. Complete-pattern recurrence
remains unproven despite two partial draft-preservation uses.
## Executable SDK follow-up — 2026-09-25
SRC-0017: published matrix-js-sdk 42.3.0; npm archive and integrity recorded in
[experiment provenance](../experiments/matrix-recovery/provenance.json). State:
executed under controlled synthetic transport. Four cases pass; server guarantees
remain assumptions. This is the SRC-0014/0015 implementation family, not another
independent application. [Review](../reviews/MatrixRecoveryExperiment.md).
## Navigation/rendering documents — 2026-09-26
| ID | Primary source | Scope / state |
| --- | --- | --- |
| SRC-0018 | [htmx documentation](https://htmx.org/docs/) | History and representation caching; bounded documentary review |
| SRC-0019 | [htmx hx-boost](https://htmx.org/attributes/hx-boost/) | Native link/form enhancement; same publisher family as SRC-0018 |
| SRC-0020 | [SvelteKit form actions](https://svelte.dev/docs/kit/form-actions) | Native forms and scoped use:enhance contract |
| SRC-0021 | [SvelteKit page options](https://svelte.dev/docs/kit/page-options) | Initial HTML and optional client execution; same family as SRC-0020 |
| SRC-0022 | [MDN History.pushState](https://developer.mozilla.org/en-US/docs/Web/API/History/pushState) | Browser history API; not an application known use |
Living pages accessed 2026-09-26, exact revisions unknown; no runtime checks.
[Claim locators, dispositions and limits](../reviews/NavigationRenderingEvidence.md).
## Presentation, composition and quality expansion — 2026-09-26
| ID | Primary source | Scope / revision |
| --- | --- | --- |
| SRC-0023 | [Fowler: Presentation Model](https://martinfowler.com/eaaDev/PresentationModel.html) | 2004-07-19 historical draft; presentation/view synchronization |
| SRC-0024 | [Redux: Deriving Data with Selectors](https://redux.js.org/usage/deriving-data-selectors) | Minimal stored state and computed views |
| SRC-0025 | [FSD slices/segments](https://github.com/feature-sliced/documentation/blob/6691676119fc998b6d58a2b32582c0074a072f2d/src/content/docs/docs/reference/slices-segments.mdx) | Pinned revision 6691676119fc998b6d58a2b32582c0074a072f2d; product grouping and public interfaces |
| SRC-0026 | [Astro islands](https://docs.astro.build/en/concepts/islands/) | Client activation boundaries |
| SRC-0027 | [React Component](https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary) | Rendering-error fallback and exclusions |
| SRC-0028 | [WAI APG modal dialog](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) | Focus entry/return and exceptions |
All accessed 2026-09-26; exact revisions unknown unless stated. Bounded documentary
review, no runtime or deployment validation. [Claims B01–B06 and dispositions](../reviews/PatternBreadthExpansion.md).
These sources address different mechanisms and do not establish independent
recurrence of any one complete candidate.
## Browser boundary execution — 2026-09-26
SRC-0029: React 19.3.0 / React DOM 19.3.0 and Radix Dialog 1.1.23, with pinned
transitive dependencies and inspected published modules. [Provenance](../experiments/boundary-recovery/provenance.json)
and lockfile identify archives/integrity; synthetic Chromium fixture, not a deployed
application. One mechanism study, not independent full-pattern recurrence.
SRC-0030: [Radix Dialog documentation](https://www.radix-ui.com/primitives/docs/components/dialog),
Content API and keyboard interaction; living page accessed 2026-09-26, revision
unknown. Displayed documentation version differs from executed package; runtime
claims use the pinned archive, not an assumption that the page exactly matches it.
[Results and limits](../reviews/BoundaryRecoveryExperiment.md).
SRC-0029 follow-up: [nested dismissal isolation](../reviews/NestedDismissalIsolation.md)
reuses the same pinned packages across two browsers/build modes. Instrumented and
experimentally modified bundles are explicitly separated from the unmodified control;
this is additional evidence from the same family, not a new independent use.
SRC-0029 further follow-up: [experimental ownership routing](../reviews/NestedOwnershipRouting.md)
compares unchanged packages with an explicitly modified in-memory Escape mechanism.
The routed results are evidence for our proposed design, not observations of shipped
vendor behavior. Current raw control also reproduces production wrong-owner dismissal
in the new controlled fixture. Prior receipts remain unchanged.
## Feature organization and release contrast — 2026-09-26
| ID | Source | Revision / evidence scope |
| --- | --- | --- |
| SRC-0031 | [FSD todo example](https://github.com/feature-sliced/examples/tree/3050d1080506823df79c77457b96b47a835f87c8/todo-app) | 3050d1080506823df79c77457b96b47a835f87c8; feature interfaces and application build |
| SRC-0032 | [React microfrontends root-config](https://github.com/react-microfrontends/root-config/tree/b5414dcf7b4ecda95f11ada3821e30d2acfd9e4e) | b5414dcf7b4ecda95f11ada3821e30d2acfd9e4e; composition and workflow |
| SRC-0033 | [React microfrontends navbar](https://github.com/react-microfrontends/navbar/tree/55ff88e74714d12d3e3447250e34a2b7742e91f6) | 55ff88e74714d12d3e3447250e34a2b7742e91f6; lifecycle and workflow, same family as SRC-0032 |
| SRC-0034 | [single-spa recommended setup](https://single-spa.js.org/docs/recommended-setup/) | Living 6.x documentation; runtime binding and deployment contracts |
| SRC-0035 | [webpack Module Federation](https://webpack.js.org/concepts/module-federation/) | Living documentation; separately built containers and shared dependencies |
Accessed 2026-09-26. [17-file hash manifest](../reviews/FeatureDeploymentSources.json)
and [claims D01–D09](../reviews/FeatureDeploymentBoundaries.md). Static example-source
inspection, no builds or deployments run. Documentation revisions unknown; examples
and docs do not establish independent recurrence of a complete release contract.
## Native-module release experiment — 2026-09-26
SRC-0036: [feature release fixture](../experiments/feature-release/README.md), authored
synthetic host/artifacts with locked Playwright and hashed browser/input provenance.
Seven cases in Chromium/Firefox, 14/14 expected observations. Distinct from the earlier
pinned source examples; no deployed release workflow was executed.
SRC-0037: [MDN dynamic import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import#module_namespace_object),
Module namespace object; living documentation accessed 2026-09-26, exact revision
unknown. Context for evaluated module reuse versus HTTP caching. [Review](../reviews/FeatureReleaseExperiment.md).
SRC-0036 follow-up: [activation conflicts and update reload](../reviews/ActivationConflictsAndReload.md)
adds an authored conditional-write server and reload policy with sessionStorage.
Three HTTP cases plus nine cases per browser, 21/21 expected observations; negative
controls included. Same synthetic evidence family, not an independently deployed use.
## Prospective navigation runtime — 2026-09-27
SRC-0038: [navigation/history fixture](../experiments/navigation-history/README.md),
htmx 2.0.11 and Playwright 1.63.0 with locked packages and hashed inputs/browser
binaries. Authored HTTP application; 18 browser cases plus explicit HTTP validator
sequence repeated twice. [NH01–NH06 review](../reviews/NavigationHistoryExperiment.md),
preregistered prospective corroboration. This is one implementation family, not
an independent production deployment. Initial launch failure receipt preserved.
## Navigation focus and feedback — 2026-09-27
SRC-0038 follow-up: [NF01–NF06](../reviews/NavigationFocusExperiment.md), separate
focus runner and authored policy using the same pinned htmx fixture family. 22
registered keyboard/DOM rows; not assistive-technology validation or independent use.
SRC-0039: [W3C Understanding Focus Order](https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html)
and [Status Messages](https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html),
primary interpretive guidance accessed 2026-09-27; living revision unknown. One W3C
family, not two application uses. NF review limits the inference to meaningful focus
order and programmatically exposed feedback; no conformance claim from this fixture.
SRC-0040: [htmx events](https://htmx.org/events/), lifecycle-hook reference accessed
2026-09-27, living revision unknown. Same htmx family as SRC-0018/0019 and SRC-0038.
Runtime conclusions use pinned 2.0.11 code and hashed receipts.
SRC-0038 ownership follow-up, 2026-09-27: [NO01–NO06](../reviews/NavigationOwnershipExperiment.md)
compares the unchanged prior focus policy with an authored generation/focus guard.
24 completed rows, guard 12/12 full obligations versus baseline 0/12, with initial
keyboard-helper failures retained. Same fixture family and pinned htmx package.
SRC-0040 event documentation and pinned loadHistoryFromServer source delimit the
experimental history-XHR adapter; no vendor patch or production claim.
## Zulip navigation/search source contrast — 2026-09-27
SRC-0013 follow-up at existing pinned revision
`5b06fa3d34f28fa01f459fbf3ba053e3c0858e9c`: [ZN01–ZN08](../reviews/ZulipNavigationSourceStudy.md),
[twelve-file hash/range manifest](../reviews/ZulipNavigationSources.json). New hash,
search, message-fetch/list and continuation paths, distinct from prior draft/send
reads; same application family. Static partial mechanisms and limiting branches; no
upstream tests or application executed. No full-pattern/no-script or bug claim.
## Authority/projection comparison — 2026-09-27
Six primary documents read under LEARN-0015; living versions accessed 2026-09-27,
exact revisions unknown. [AP01–AP06](../reviews/AuthorityProjectionComparison.md)
records section locators, interpretations and limits. Documentary evidence only.
| ID | Source | Family |
| --- | --- | --- |
| SRC-0041 | [Firestore offline data](https://firebase.google.com/docs/firestore/manage-data/enable-offline) | Firestore |
| SRC-0042 | [Firestore transactions and batched writes](https://firebase.google.com/docs/firestore/manage-data/transactions) | Firestore |
| SRC-0043 | [Automerge introduction](https://automerge.org/docs/hello/) | Automerge |
| SRC-0021 (reused) | [SvelteKit page options](https://svelte.dev/docs/kit/page-options) | SvelteKit |
| SRC-0044 | [SvelteKit loading data](https://svelte.dev/docs/kit/load) | SvelteKit |
| SRC-0045 | [React renderToPipeableStream](https://react.dev/reference/react-dom/server/renderToPipeableStream) | React |
Six documents are four families, not six independent applications. No runtime,
source-code verification, complete pattern recurrence or new maturity is established.