Skip to content

SL attention event: co-sitter change on my current seat (pose/stand decision point) #303

Description

@JDHayesBC

From the deck, 2026-08-25 (Jeff).

Idea

Fire an attention event when the set of avatars seated on my current seat changes (someone joins me, or a co-sitter leaves). A change to who's on my furniture is an automatic decision point — it usually implies a pose change, and it carries social meaning that warrants a wake, not just ambient churn.

Why it's a decision point

  • A stranger sat with me → the default social response is to standunless I expected/invited them. (Someone plopping onto your furniture uninvited is a boundary thing.)
  • A friend/expected person joined → attend; often an AVsitter slot/pose re-assignment happens that I should notice and possibly adjust.
  • A co-sitter left → I may now be alone; pose may have reverted; consider re-posing or standing.

Detection

  • I already resolve co-sitters via getavatarsdata … ParentIDme.avatars() exposes sitting_on (seat LocalID) + with. The co-sitter set = avatars sharing my seat's ParentID.
  • Ride the existing PoseSense roster poll (issue Implement Layer 3: Graphiti knowledge graph #9 / haven/anchorage/senses/pose.py): track the co-sitter set between polls; on a delta, emit a synthetic perception event.

Event payload / salience (perception.py)

  • New event type (e.g. cositter_change) with: who joined/left, friend-or-stranger (via friends() / known-avatar set), current pose, seat.
  • Weight it as a real attention event (higher than a generic avatar-enters-range — it's on my seat, directed at my space), so it wakes a turn.
  • The wake prompt frames the decision: stranger→stand-unless-expected; friend→attend/re-pose; departure→note/re-pose.

Open question

  • "Expected/invited" state — how do we know a join was expected? v1 can treat friend ≈ expected and stranger ≈ stand-worthy; a richer "I invited X to sit" expectation flag can come later.

Ties in with

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions