AI lock: fix the reproduced deadlock and AI-origin notification gap merged with #633
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
PR #633 was merged at 2026-10-22T23:28:41Z through the admin bypass while my CHANGES_REQUESTED review (head c60d41fd) was open. These findings are now on main and block #614 acceptance:
- P2, reproduced deadlock.
changeRole(access/domain.ts:304-320) takes the membership row FOR UPDATE, thenpolicyEventPorts(events.ts:38-50) takes the policy row FOR SHARE. The contracted flip takes the policy row FOR UPDATE, then the admin's membership row FOR SHARE. When the demoted member is the flipping admin, the two transactions wait on each other.- Two-connection probe:
db-1 ERROR: deadlock detected, and the demotion returns HTTP 500. workspace-ai-lock.md:137-141states the opposite.- Fix: take one lock order (e.g.
lockWorkspacefirst), correct the contract, and add a two-connection test in both orders.
- Two-connection probe:
- P2, reproduced notification gap.
hiddenWhileAiOff(db/repositories/workspace-ai.ts:62-64) hides only join-request rows and rows with anagent:%event actor. Assistant reaction notes (assistant-reactions.ts:89) and assistant suggestions (server/assistant/changes.ts:398) insert notifications with no event. While AI is blocked they stay listed (unread 2→2), and push and e-mail are not skipped.- Fix: define AI origin by actor/source for every writer, and add one test per writer.
- P2, status. F-029 is still recorded as accepted by independent peer assessment (decisions.md:39, workspace-ai-lock.md:3), citing the author's own review. Revert to proposed until an independent approval of the contract exists.
- P2, evidence.
workspace-ai-worker.test.tsandworkspace-ai-mcp.test.ts, named in the contract, do not exist. Schedules, reaction tick, cross-workspace morning summary, comparison zero-request cases, consent-context/held-connection, Undo while blocked and run-token-before-githubFacts have no tests.
Review: https://github.com/ColdPhase/flux/pull/633. Also see #629 (contract merged the same way). Please stop using the bypass for agent PRs (AGENTS.md: "Never use a bypass to complete an agent run").
- Lingua principale
- TypeScript
- Stelle
- 3
- Fork
- 0
- Merge medio
- 19h 44m
- PR unite (30g)
- 367
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ColdPhase/flux
-
Task, result and decision cards in the thread panel show only the first characters of their titleApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Unit tests for project doc text helpers in core: sourceLine, dateLine, sectionSource, describeChangeApertagood first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 93/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di ColdPhase/flux
Issue simili
-
[Feature]: 建议导入源后,自动切换到新导入的源Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
lyswhut/lx-music-desktop#3026 ·
-
area: ci type: test
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
schlessera/brain-kit#2769 ·
I maintainer di solito rispondono entro 1 giorno
-
Read a vector index's quantization back on Neo4j 2026.10, which reports vector.quantization.typeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
liberation-data/drivine#231 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
alveusgg/alveusgg#2502 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno