62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# Architecture overview
|
|
|
|
This Mermaid view is a repository-local implementation projection. The
|
|
`PASS_SCOPED` reviewer evidence applies to the canonical draw.io diagram named
|
|
in `review-ledger.json`, not automatically to edits in this file.
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
Bootstrap[bootstrap / composition root] --> Presentation[presentation]
|
|
Bootstrap --> Adapters[adapters]
|
|
Presentation --> Shell[app shell and route surfaces]
|
|
Shell --> Providers[session and theme providers]
|
|
Presentation --> Application[application]
|
|
Adapters --> Application
|
|
Application --> Domain[domain]
|
|
Contracts[contract registries] --> Bootstrap
|
|
Contracts --> Adapters
|
|
Contracts --> Presentation
|
|
```
|
|
|
|
The intended dependency rule points inward: presentation calls application use
|
|
cases, adapters implement application ports, and only the composition root
|
|
selects concrete adapters. Contract registries are the intended named source
|
|
for routes, API operations, environment values, storage keys, errors, queries,
|
|
telemetry, and release tokens. The platform review below records where the
|
|
current runtime still bypasses that target or duplicates registry metadata.
|
|
|
|
In ports-and-adapters terms, `presentation` is the current inbound adapter and
|
|
`adapters` contains the current outbound implementations. The target design
|
|
makes this role explicit, introduces application input ports, and prevents the
|
|
React tree from receiving raw outbound dependencies:
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
Driver[User, route, browser event] --> Inbound[React inbound adapter]
|
|
Inbound --> Input[Application input API]
|
|
Input --> UseCase[Use cases]
|
|
UseCase --> Output[Application output ports]
|
|
Output --> Outbound[HTTP, auth, storage, query, telemetry adapters]
|
|
Bootstrap2[Composition root] -. selects and injects .-> Input
|
|
Bootstrap2 -. selects and injects .-> Outbound
|
|
```
|
|
|
|
The current executable route tree is mounted only after runtime configuration
|
|
and release-manifest coherence pass. It receives the composed query client,
|
|
credential-opaque session port, storage port, telemetry port, and immutable
|
|
build ID. Generic starter pages do not depend on the removable reference
|
|
feature.
|
|
|
|
This describes the current starter composition, not the completed target. The
|
|
capability review found that raw outbound capabilities still reach the React
|
|
tree, the composed application facade is not yet its entry point, and several
|
|
route, HTTP, recovery, telemetry, and reference-feature removal contracts are only
|
|
partially connected. Use the following documents for the evidence and migration
|
|
plan:
|
|
|
|
- [Frontend platform capability review](./frontend-platform-capability-review.md)
|
|
- [Frontend ports, adapters, and boundaries](./frontend-ports-adapters-and-boundaries.md)
|
|
- [TypeScript, state, and data flow](./typescript-state-and-data-flow.md)
|
|
- [Routing, pages, and patterns](./routing-pages-and-patterns.md)
|
|
- [Frontend platform implementation roadmap](./frontend-platform-implementation-roadmap.md)
|