a plain message, in the owner's own words

officer/core:test has fixed words and officer/core:commander prefixes a
name, so there was no way to say one sentence to somebody without it
arriving dressed as something else. this entry adds nothing around the
producer's title and body.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
2026-08-24 16:13:58 +00:00
co-authored by Claude Opus 5
parent 16d02ffee1
commit de633f8697
+18
View File
@@ -137,6 +137,24 @@ const CORE_ENTRIES: Record<string, NotificationEntry> = {
matters: it is the fallback when it doesn't, and it is what makes the thread group per commander rather
than piling every commander into one stack.
*/
/*
A message from the owner, in their own words.
The plainest possible entry: both fields are the producer's and this adds nothing around them. It
exists because `officer/core:test` has fixed words and `officer/core:commander` prefixes a name, so
there was no way to say one sentence to somebody without it arriving dressed as something else.
Same trade as every producer-text notification — the words go through Apple and Google. See
`sidecar/notify/types.ts`. This one is the case where that is most obviously the point: it is a
message TO a person, and a message they cannot read is not one.
*/
'officer/core:message': {
title: '{title}',
body: '{body}',
target: 'mobile',
route: 'officer://',
thread: 'officer/core:message',
},
'officer/core:commander': {
// `{title}` is the commander's NAME and `{body}` its sentence — the commander supplies both and this
// decides what they look like. It sends "Voice Memos", never "Commander: Voice Memos": the prefix is