Skip to content

Commit 54273c6

Browse files
docs(spec): add spec 048 — lazy, trimmable control registration (#466)
Follow-on to spec 047. Settles how V1 control registration should happen so it is automatic, lazy, and — the load-bearing requirement — does not defeat AOT trimming. Captures the discussion and resolution: - The pick-two-of-three tension (pure-data elements + automatic registration + trimmability can't coexist), grounded in the trimmer following static refs. - Rejected approaches (per-host RegisterHandler, element self-description/cctor, [ModuleInitializer], reflection discovery) each tied to the requirement they violate. - Resolution: factory-as-registration-link, with Pattern A (static-cctor factory holder for 3P controls) and Pattern B (generic Reg<E,C,H> scale pattern for the built-in catalog). - ControlRegistry contract, dispatch precedence, hot-path cost model, built-in migration (dismantle RegisterV1BuiltInHandlers, keep Factories aggregation-free), trim verification test, open questions, and phasing. Design only — no implementation. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent b0c8174 commit 54273c6

1 file changed

Lines changed: 433 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)