Ok, this is complex so please bear with me.
Unlike process="inline" and process="end", the process="start" parameter is relative to the processing stage of the host EE template, not the processing of the nested Stash template (which is undertaken by a separate instance of the template parser and occurs either in parallel with or after the EE parser has run). Logically therefore process="start" is impossible in a nested Stash embed, since the nested embed is included after the parent template, which is itself parsed inline with the host template parser.
Consequently, your embed {stash:embed name="common:.avatar"}
is always going to be processed after the channel entries tag has run, since it is nested inside it and the EE parser processes a template from the outside inwards.
Stash embeds are saved into memory as variables with the same name as the embed. After embedding, they are accessible later on in your template parse order as ordinary Stash variables. Therefore one possible solution would be to embed the child template earlier (but not output it), and then access it as a variable.
{stash:embed name="common:.avatar" process="inline" output="no"}
{exp:stash:set parse_tags="yes"}
{stash:channel_entries}
{exp:channel:entries channel="{stash:channel_name}" dynamic="no" group_id="{stash:group_id}" limit="10" orderby="date" paginate="bottom" sort="desc"}
{stash:common:.avatar}
...
{/exp:channel:entries}
{/stash:channel_entries}
{/exp:stash:set}
I've never tried this so I'm not entirely sure it will work, please confirm if it does.
Other than the above, I would like to point out that nesting embeds in this way is reintroducing some of the parse order problems that Stash is meant to solve. In addition to allowing code re-use (the DRY principle) Stash allows you to separate the 'data-setting' logic (the viewModel) from the presentation (view). You are mixing up these layers when really you should be trying to separate them - and it's coming back to bite you. It's better to think of your EE host template as the place you grab all the data that you will then 'push' to the embed(s) containing your markup. If you have common patterns of data setting in your host template then encapsulate them as snippets rather than embeds.
{stash:embed name="common:.avatar"}
with the code it contains does that work?{stash:embed name="common:.avatar"}
, I outputted {age}, which is a field in my Channel. It displayed the Channel data. I then put{age}
as the first line incommon:.avatar
; that renders as the string "{age}". So everything OK incommon:.serp
, but not anymore incommon:.avatar
?