ADR map by topic

The ADR directory is chronological; this page is a reading map. Always open the record and read its status/amendments. A number in source comments is a route to rationale, not proof that every paragraph remains current.

The map covers records up to ADR-0148, the newest one it cites. Later records are not classified here; find them in docs/adr/, which lists every record by number.

How to interpret a record

StatusMeaning
Proposeddesign under consideration; not current policy by status alone
Acceptedintended architecture unless amended or superseded
Supersededhistorical context; follow the named replacement

Implementation is separate. Code may realize part of a Proposed record, and old types may remain after an architecture was superseded. Verify both facts.

Search by number/title/status:

rg -n '^# ADR-|^[-*] \*\*Status:' docs/adr
rg -l 'HTTP server|settlement|component' docs/adr

Core actor, mail, and wire model

TopicStart withContinue with
Mail-only engine boundaryADR-0002ADR-0013, ADR-0017
Typed identity/schemaADR-0005, ADR-0030ADR-0031, ADR-0032, ADR-0065, ADR-0118
Components and wasm hostingADR-0022 (superseded by ADR-0038), ADR-0033ADR-0096, ADR-0099
Instanced actorsADR-0079ADR-0114, ADR-0138
Reply classesADR-0112ADR-0134
Capability-owned kindsADR-0121ADR-0122 marker/runtime split; current per-capability crates such as crates/aether-audio, crates/aether-http, and crates/aether-component

Scheduling, lifecycle, and evidence

TopicRecords
Causal tracing and settlementADR-0080, ADR-0106
Lifecycle actor and stagesADR-0082
Blocking dispatch with holdsADR-0093
Scheduler/runtime concurrencyADR-0087, then its in-record shipped-state corrections
Per-actor loggingADR-0077, ADR-0081
Per-handler execution costADR-0036's supersession note, then current actor_cost source
Live name/kind/handler inventoryADR-0088, ADR-0091, ADR-0109

Chassis, fleet, and tooling

TopicRecords
Chassis compositionADR-0070, ADR-0071; ADR-0034 and ADR-0073 for hub/consolidation history
Hub/RPC controlADR-0072 (amended), ADR-0074, ADR-0118
Stable MCP tunnelADR-0089
Layered configurationADR-0090
Binary/component artifact storesADR-0115, ADR-0116
Hosted autonomous pipeline (retired)ADR-0146 (Superseded); follow the current agent workflow and .agents/skills/
Hosted required-review gate (retired)ADR-0148 (Superseded); follow the current agent workflow and .agents/skills/
Release branchesADR-0092 (Proposed; not current policy)

Platform I/O

TopicRecords
Filesystem namespacesADR-0041
HTTP egressADR-0043
TCP instancingADR-0079; wire updated by ADR-0118
HTTP server baselineADR-0108
HTTP streamingADR-0128
Websocket and stream idsADR-0129, amended by ADR-0132 and ADR-0133
Route registration/typed routesADR-0130, ADR-0131
Explicit handler classesADR-0134
HTTP sharding/shared target setsADR-0135, ADR-0136

Read the HTTP sequence in order: later records deliberately amend addressing and topology while preserving earlier public concepts.

Rendering, media, and authoring

TopicRecords
Rendering/capture foundationsADRs cited from Rendering
TextADR-0105 (render surface, layout, atlas), ADR-0248 §10 (the renderer draws text)
Mesh DSL and meshingADR-0026, ADR-0051–ADR-0053, ADR-0056–ADR-0057, ADR-0062
Audio baseline/scheduling/samplesADR-0039, ADR-0103, ADR-0104, ADR-0126, ADR-0127
Widgets/composition/editorADR-0117, ADR-0140, ADR-0141 — the widget crate ADR-0117 and ADR-0141 cite is no longer in the tree; ADR-0117 §2 (draw order is structural) stands, and ADR-0141 is withdrawn
Terrain marks and proposalsADR-0142, ADR-0143 — Accepted, but the aether-kit-terrain crate they cite is no longer in the tree; read them as history

The old DAG and handle-store designs (ADRs 0045, 0047, 0049) are superseded. Residual id types are not evidence that those native subsystems still ship.

Content and gameplay

TopicRecords
Provider content generationADR-0050, ADR-0159 (no provider component currently ships)
Tick-native simulationADR-0144 (Accepted)
Player sessions over TCPADR-0145 (Accepted, partially realized in code)

ADR-0050 contains deferred/historical provider discussion. No provider component currently ships in the workspace; the shared Usage accounting in aether-kinds is what remains of its kind vocabulary.

Testing and performance

TopicRecords
Test-bench chassisADR-0067
Performance comparison postureADR-0085
Component replacement fixturesfollow ADRs 0113, 0114, 0138 and fixture docs

When to write a new ADR

Write one when a change fixes a durable boundary, invariant, compatibility policy, trust model, or rejected alternative that future contributors would otherwise re-litigate. Do not write one for a local refactor whose rationale is fully captured by code/tests.

Use docs/adr/TEMPLATE.md, allocate the next number without renumbering, link records it amends/supersedes, and keep status honest. The architecture-decision workflow explains the repository process.