Skip to content

Add witness observations co-signed by a paired peer's own device key #300

Description

@ChelseaKR

What

A neighbour saw the ceiling collapse; a fellow tenant smelled the gas. Today their account can only be typed into the tenant's timeline as an Other entry with no independent binding. Add a witness observation record: a paired peer (already authenticated by sync pairing) writes a short statement and optional captures on their own device, signs it with their device key, and sends it as a sealed delta; the case owner's vault commits it into custody as a distinct record type with the witness key fingerprint, and the packet renders it as "observation recorded by another device (fingerprint), not by the tenant". The witness keeps a signed copy.

Why it matters

Corroboration is the record-strength assessment's strongest factor (strength.py), and the project already has instrument corroboration (sensor.py) and partner capsules (capsule.py), but not a person on another device. Pairing gives a key without an identity system, which matches the no-accounts principle. This is presentation and custody, never a legal claim: the packet must not call it testimony, and the copy is held to the same "not legal advice" boundary as letters.

Scope

  • A record type in model.py and evidence.py; a sync message; a verifier decision-table row; a strength factor.
  • CLI witness add|export; the app flow on the witness side; EN/ES copy.
  • Disclosure policy: witness fingerprint and statement included, witness device metadata stripped.

Out of scope

  • Identity verification of the witness.
  • Notarisation or any legal-form language.

Done when

  • A witness record from a paired device verifies with its signature; a modified statement fails.
  • A witness record from an unpaired key is refused at merge.
  • The packet shows the record under a distinct heading with the fingerprint and the "not testimony" boundary text present in both languages.

Pointers

  • src/habitable/pairing.py, src/habitable/sync.py, src/habitable/evidence.py, src/habitable/strength.py, src/habitable/capsule.py, docs/verifier-decision-table.md, docs/sharing-trust-model.md

Proposed with AI assistance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureMajor new capability proposal

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions