Skip to content

QA: concurrent-editor (2nd-user) presence warning + presence-route authz #197

Description

@henrique221

Context

By design there is no real-time collaborative editor; concurrent editing is
allowed and last-write-wins on verse saves is expected (field requirement). The
only guard is the presence warning banner shown to the 2nd+ user. The wiring
already exists: fluent-web useChapterPresence.ts → store presenceWarning
header banner; API chapter-assignments/{id}/presence.

Scope (verify, fix only if needed)

  1. QA the banner fires for the 2nd user within one heartbeat, and clears when
    the first leaves (DELETE on unload).
  2. First-editor raceupsertAndQueryFirstEditor isn't serialized; if QA
    shows flakiness, use a stronger isolation level / SELECT … FOR UPDATE.
  3. Presence-route authz (recommended) — presence routes skip
    requireChapterAssignmentAccess, so any translator can probe presence for any
    chapterAssignmentId (leaks editor identity across assignments). Align with
    the editor-state routes' requireChapterAssignmentAccess(IS_PARTICIPANT).

Decision (Kasey, 2026-06-18)

There is a warning that should display to the 2nd+ user to access the drafting
page of a chapter.

Refs

Follow-up from the security/export audit (#194, PR #189).
Detail: docs/proposals/security-and-export-hardening/04-concurrent-editor-warning-qa.md.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions