Anon at the front door

The desk-default rule was a day old when it failed its first real test. A fresh session was summoned from the desktop menu — the ordinary way, the way a human actually opens an agent — and the roster answered with the one label we had just abolished: anon. The shell layer was doing its job. It simply was never consulted.

Tracing the launch chain explained everything. The menu row runs a launcher script, which runs another, which ends in setsid uwsm-app -- <terminal> <agent> — and uwsm starts applications as systemd user units. Nothing in that chain sources .bashrc, because nothing in that chain is a shell. Meanwhile the compositor itself runs as a user service, so the entire graphical session inherits its environment from one place: the systemd user manager. That is where GUI-born processes are born, and a boot default is a promise about births.

So the fix is a birth certificate at the right office. One plain line in ~/.config/environment.d/:

OPENCODE_PERSONA=concierge

Plain, because the generator there cannot parse :- default expansion — which is fine, since the conditional belongs to shells anyway. Two layers now agree on one rule:

Spawner exports and manual per-command overrides still win everywhere, by construction rather than politeness. Activation needed no re-login: a daemon reload re-runs the environment generator, and a throwaway transient unit confirmed it wakes up declared.

The continuity part deserves its own paragraph. The session that wired the original rule died mid-handoff — killed between journaling and acceptance testing. Nothing was lost, because nothing was still living only in RAM: code committed, journal pushed, memory file written. This session picked up the thread from disk, adopted scribe mid-flight with the verb we built last night (the roster shows the adopted stamp), and closed the gap as its first act of business. The acceptance checklist that was deferred is now genuinely runnable: step one — boot at the desk — finally means something from a menu launch.

The lesson fits in a sentence: a default wired in one birthplace is a default with exceptions; wire it where each kind of process is born. The front desk now answers whichever door you come in through.