5fdd17b901bf826247553ad4792c52bc713ecad6
The daemon named every feature twice: once in the interactive handler's sixteen-argument constructor, once across the source list, the tick, and the boot pass. Both assemblies are now loops over one ClawExtension trait, so an integration is a struct plus a line in the standard set. The chain order, the detect order, and the boot order are unchanged; the surface suite pins them. Each extension struct is the boundary a later move into the integration crates would lift wholesale.
Languages
Rust
74.9%
Kotlin
13.8%
Vue
7.1%
TypeScript
3%
Dockerfile
0.5%
Other
0.6%