zebra-report/docs/tickets
Russell Ballestrini e321a7cee1
docs: add tickets dir + first two open defects
zebra-report didn't have a defect tracker before; until now everything
lived in commit-message archaeology and signal-server log greps. Two
known defects make this the right moment to start one:

  0001: fedora chrome cannot hear speakers (P0, in-progress)
    P0 because every invariant (RTP arriving, worklet started,
    ctxState=running) is green but the user hears nothing — silent
    regression is trust-eroding. Primary hypothesis is that
    AudioContext.destination always routed to system-default while
    the speaker-output picker only setSinkId'd <audio> elements.
    Fix landed in 467146a (applySinkToAudioCtx), awaiting fox retest
    in production.

  0002: fedora firefox cannot share camera (High, open)
    Camera publish fails on firefox; chrome same machine works.
    No telemetry yet; ticket enumerates the candidates to narrow
    on the next attempt.

README.md spells out the format (status / priority / surface / first
seen, then symptom / telemetry / hypothesis / fix / status notes)
and the resolution loop (telemetry → failing test → fix → stamp →
deploy → update ticket).
2026-06-07 11:24:17 -04:00
..
0001-fedora-chrome-cannot-hear-speakers.md docs: add tickets dir + first two open defects 2026-06-07 11:24:17 -04:00
0002-fedora-firefox-cannot-share-camera.md docs: add tickets dir + first two open defects 2026-06-07 11:24:17 -04:00
README.md docs: add tickets dir + first two open defects 2026-06-07 11:24:17 -04:00

Tickets

Defect tracker for zebra-report. Anything that takes more than 15 minutes or needs to be reproduced across browsers, devices, or sessions lives here as a numbered markdown file.

File format

Each ticket is docs/tickets/NNNN-slug.md where NNNN is monotonically increasing. New tickets get the next number.

# NNNN: Short title

**Status:** open | in-progress | blocked | fixed | won't-fix
**Priority:** P0 (silent regression / data loss) | High | Medium | Low
**Surface:** browser / OS / role (e.g. "fedora chrome listener")
**First seen:** YYYY-MM-DD (reporter's local date)
**Reporter:** handle

## Symptom
What the user sees. Plain language, no implementation details.

## Telemetry / Repro
What the signal log / browser console / pcap shows. Concrete lines if
available. How to reproduce.

## Hypothesis
What we think is going on. List candidates if not yet narrowed.

## Fix
What was tried, what landed, what commit. Empty until something ships.

## Status notes
Running log of attempts, observations, retests. Newest at the top.

Priority

  • P0 — silent regression: the app appears to work but doesn't (no error surfaced, audio routes nowhere, video goes black). Trust-eroding because the user can't tell what's wrong.
  • High — feature unavailable (can't share camera, can't enter room). Visible error or empty state.
  • Medium — degraded UX with workaround (slight latency, wrong tile order).
  • Low — cosmetic, log noise, tooling.

How tickets are resolved

  1. Reproduce or grab telemetry from the signal-server log (/var/log/zebra-spaces-signal.log — grep CLIENT_LOG + the reporter's handle).
  2. Write a failing test in test/ that pins the contract the defect violates. The test failing IS the diagnosis.
  3. Fix the code so the test passes. Commit with the test name in the message body.
  4. make stamp, push both zebra-report and the deploy repo (www.unturf.com/zebra-report/).
  5. Update the ticket Status to fixed, link the commit, note what to re-test in production.

Open

# Title Priority Surface Status
0001 fedora chrome cannot hear speakers P0 fedora chrome (any role) in-progress
0002 fedora firefox cannot share camera High fedora firefox (speaker/host) open

Fixed

(none yet)