Why: 8788 multi-user verification found that a project member's shared knowledge retrieval hangs the whole service (SQLite single connection held by an open result set while the authorization callback queries the store), runs report a zero start time, and runs interrupted by a restart leave no visible reply.
Changes:
Shared knowledge scans (vector, FTS, LIKE, Postgres) read and close candidate rows before applying authorization callbacks.
CreateRun / CreateRunAccountChecked default a zero CreatedAt to now and persist the same value.
SealInterrupted writes one assistant message with a run.interrupted error part in the same transaction when the seal wins (no duplicate when an assistant message exists); settle message insertion shared via insertSettledMessageTx.
Evidence: go test ./internal/store ./internal/runmgr -count=1 ok (local, SELF); authority is CI on the PR HEAD.
Impact: Backend store/runmgr only.
Refs: Dev task fix/multiuser-project-collab; agent-exec transport 60f37ad (agy).
Why: 8788 multi-user verification found that a project member's shared knowledge retrieval hangs the whole service (SQLite single connection held by an open result set while the authorization callback queries the store), runs report a zero start time, and runs interrupted by a restart leave no visible reply.
Changes:
- Shared knowledge scans (vector, FTS, LIKE, Postgres) read and close candidate rows before applying authorization callbacks.
- `CreateRun` / `CreateRunAccountChecked` default a zero `CreatedAt` to now and persist the same value.
- `SealInterrupted` writes one assistant message with a `run.interrupted` error part in the same transaction when the seal wins (no duplicate when an assistant message exists); settle message insertion shared via `insertSettledMessageTx`.
Evidence: `go test ./internal/store ./internal/runmgr -count=1` ok (local, SELF); authority is CI on the PR HEAD.
Impact: Backend store/runmgr only.
Refs: Dev task fix/multiuser-project-collab; agent-exec transport 60f37ad (agy).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why: 8788 multi-user verification found that a project member's shared knowledge retrieval hangs the whole service (SQLite single connection held by an open result set while the authorization callback queries the store), runs report a zero start time, and runs interrupted by a restart leave no visible reply.
Changes:
CreateRun/CreateRunAccountCheckeddefault a zeroCreatedAtto now and persist the same value.SealInterruptedwrites one assistant message with arun.interruptederror part in the same transaction when the seal wins (no duplicate when an assistant message exists); settle message insertion shared viainsertSettledMessageTx.Evidence:
go test ./internal/store ./internal/runmgr -count=1ok (local, SELF); authority is CI on the PR HEAD.Impact: Backend store/runmgr only.
Refs: Dev task fix/multiuser-project-collab; agent-exec transport
60f37ad(agy).