Summary
Sharing is opt-out by default (#136 decision). This issue adds a `visibility` flag on `sessions` so an instruktør can mark a specific session as private, removing it from the joint-class history view (issue #138) without deleting it.
Priority
Medium
Data model
alter table sessions add column visibility text not null default 'shared'
check (visibility in ('shared', 'private'));
The default `'shared'` preserves existing behaviour for all current rows. A `'private'` row is excluded from cross-instruktør queries but remains fully visible to its owner.
UI spec (Carbon g100)
Acceptance criteria
Out of scope
- Per-exercise privacy
- Retroactive bulk opt-out
Summary
Sharing is opt-out by default (#136 decision). This issue adds a `visibility` flag on `sessions` so an instruktør can mark a specific session as private, removing it from the joint-class history view (issue #138) without deleting it.
Priority
Medium
Data model
The default `'shared'` preserves existing behaviour for all current rows. A `'private'` row is excluded from cross-instruktør queries but remains fully visible to its owner.
UI spec (Carbon g100)
Acceptance criteria
Out of scope