Skip to content

Investigate huddle tracking #7

Description

@tytremblay

Huddles are the one hole in the DM story. §6 of the source document says to turn them off, or accept that they are unrecorded 1:1 voice — "same problem as DMs, and easy to forget" — and docs/policy-mapping.md records the control as manual on the grounds that there is no API to observe them.

That grounds deserve re-testing. A 1:1 adult–student huddle is exactly the thing §4.1 exists to prevent, and right now nothing detects one.

What the policy actually needs. Not content. Just the occurrence: an adult and a student were in a huddle with no second adult present, anchored to a timestamp. That is a dmPolicy-shaped verdict and an occurrence finding, so recurrence.ts already has the right semantics for it.

Angles to check, roughly in order of promise:

  1. Artifacts left in the conversation. A huddle in a DM may leave a message or a message subtype in that conversation's history. If so, recordMessage may already be seeing it and we are simply not classifying it. Cheapest thing to test first.
  2. Huddle recordings and transcripts. Where enabled, these land as files in the conversation. hawk-mod already records file metadata ({id, name, mimetype, size}), so "a huddle happened in this 1:1" may be derivable from data we hold today, without fetching anything. Note this is contingent on the feature being on, so it cannot be the only signal.
  3. huddle_state on the user object / user_change events. A presence-shaped signal at best — it may tell us someone is in a huddle without telling us who else is. Possibly useful in combination, probably not alone.
  4. Discovery API and audit logs. Enterprise Grid only, so out of scope for us — confirm and rule out rather than assume.

If none of it works, the fallback is unchanged: huddles stay off. But make that a verified condition rather than a hope — check whether the workspace setting is readable via API, and if it is not, put it on the quarterly audit checklist rather than leaving it as something someone remembers.

Consent form note. docs/consent-form.md currently enumerates what the team records and states "that is the entire list." If huddle tracking lands, that section and the retention section both need a sentence, and the form version bumps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions