ADR-0008: Resolution per participant, not per device

Context

The memo's second belief is personal: "All of us should have agency over the resolution at which our words are remembered." A single room-wide rung serves the room, not the person. In v1, one cautious participant pulls everyone down, and nobody can keep more of their own words than the room allows.

Proposal

The ring

Rules (extends room-agreement.md)

  1. Your own words. A first-person phrase sets the level for your own voice only, e.g. "keep my words to the decisions" or "you can quote me."
  2. Raising your own words above the room default needs no objection window, because it affects no one else. This is the individual right to remember.
  3. Lowering the room. "This is off the record" and other room-wide phrases still lower everyone, which is the safe direction.
  4. Nobody raises anyone else. A command can never set another person's level higher.
  5. When the device isn't sure who spoke: a lowering applies to the whole room, and a raise is ignored. A wrong guess must never keep someone's words in more detail than they chose.
  6. New voices start at the room default and get a dot when they first speak.

Privacy constraint on telling voices apart

Telling who is speaking relies on voice embeddings. EU regulators treat voice as biometric data, and Illinois law covers voiceprints (see v01/research/market.md). So the embeddings must be:

Dots are anonymous unless a person says their own name. Legal review is needed before this is sold.

Consequences

Implementation (2026-10-12)

# ADR-0008: Resolution per participant, not per device

- **Status:** accepted (Rafa, 2026-10-12, "Yes go ahead"). Original proposal: "instead of 5 dots for resolution we have 10 dots, one per participant, and each LED has a resolution so people in their own voice can tell the machine which resolution their own words are kept at."
- **Date:** 2026-10-12
- **Supersedes if accepted:** the single room-wide rung in ADR-0003 and ADR-0006; brings P-06 (individual right to remember) and P-14 (per-speaker rungs) into v1.

## Context
The memo's second belief is personal: "All of us should have agency over the resolution at which our words are remembered." A single room-wide rung serves the room, not the person. In v1, one cautious participant pulls everyone down, and nobody can keep more of their own words than the room allows.

## Proposal

### The ring
- **Hardware:** the eye becomes a ring of 12 LEDs, either Adafruit's 12-LED NeoPixel ring (Ø 37 mm) or a custom ring of 2 mm LEDs.
- **One dot per voice:** each participant the device detects claims one dot, up to 10. The other two dots are reserved for room-wide states.
- **Brightness is the level** for that person's words:
  - bright: attributed
  - medium: gist
  - dim: outcomes only
  - off: off the record
- **Finding your dot:** a dot pulses while its owner speaks, so you can see which one is yours.
- **Position (later):** with 3 or more mics the device can estimate direction, so each dot can sit on the side of the ring facing its owner. That isn't possible with the 2 mics in v01.

### Rules (extends room-agreement.md)
1. **Your own words.** A first-person phrase sets the level for your own voice only, e.g. "keep my words to the decisions" or "you can quote me."
2. **Raising your own words** above the room default needs no objection window, because it affects no one else. This is the individual right to remember.
3. **Lowering the room.** "This is off the record" and other room-wide phrases still lower everyone, which is the safe direction.
4. **Nobody raises anyone else.** A command can never set another person's level higher.
5. **When the device isn't sure who spoke:** a lowering applies to the whole room, and a raise is ignored. A wrong guess must never keep someone's words in more detail than they chose.
6. **New voices** start at the room default and get a dot when they first speak.

### Privacy constraint on telling voices apart
Telling who is speaking relies on voice embeddings. EU regulators treat voice as biometric data, and Illinois law covers voiceprints (see `v01/research/market.md`). So the embeddings must be:
- clustered within a single conversation only, with no enrolment and no identification;
- held in RAM only, and dropped when the conversation ends;
- never written to storage or exported.

Dots are anonymous unless a person says their own name. Legal review is needed before this is sold.

## Consequences
- **Diarisation accuracy** becomes a safety property, not a convenience. It needs its own test: the error rate in attributing a command to the right speaker.
- **Storage:** each block holds a level per speaker turn instead of per block. The key chains (rung × retention class) are unchanged; distillation runs per speaker turn.
- **Eye size:** a 12-dot eye needs Ø ≈ 40 mm instead of 33 mm. Five 9.1 mm boards no longer fit, so v01 moves to a 12-LED ring.
- **Phrase grammar:** gains first-person forms ("my words", "quote me", "don't record me").
- **Legibility:** the simulator and phone simulator need a cold-read test. Can a stranger find their own dot and read its brightness?

## Implementation (2026-10-12)
- Firmware: `v01/firmware/goldfish/room.py` (`Room`), first-person phrases and `scope_of()` in `intents.py`, tests in `tests/test_room.py`. The 4 new phrases are in the shared corpus.
- Phone simulator: https://npc.here.now/demo-goldfish/workbench/ — same rules in JS, with a "speaking as" picker standing in for speaker separation.
- Hardware: the eye moves to Adafruit NeoPixel Ring 12, warm white and amber (6526). The enclosure grows to 138 × 54 × 27 mm.