v3 : cinquième relecture — rien de ce qui touche un chiffre n'est une coquille
- Signature : tout caractère qui n'est pas une lettre latine et touche un chiffre compte, espaces et ponctuation comprises (« 5, 0 », « 1:5 », « 1…5 ») ; un tiret compte devant ou après un chiffre à travers les espaces (« - 5 ») ; seules quatre espaces sont libres (ordinaire, insécable, fine insécable, saut de ligne). - Négations complétées (guère, point, nothing, nobody, nadie, jamás…). - Adoption : le texte qui entre en vigueur est celui qui a été compté — une révision arrivée pendant le passage l'arrête. - Déploiement : « previous » est gardé avant le témoin de déploiement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -78,6 +78,22 @@ pub async fn run(state: &AppState, doc_id: &str) -> AppResult<Vec<Entered>> {
|
||||
let params = us.map(|u| compose::params_for(u, p.kind(), st.doc.vote_floor));
|
||||
let now = util::now();
|
||||
let mut tx = state.db.begin().await?;
|
||||
// The text that enters is the text that was counted: a revision that landed
|
||||
// since the state was read stops it (the next pass will judge it again).
|
||||
let unchanged = sqlx::query(
|
||||
"UPDATE proposals SET updated_at = updated_at
|
||||
WHERE id = ? AND revision = ? AND title = ? AND body = ? AND status = ?",
|
||||
)
|
||||
.bind(&p.id)
|
||||
.bind(p.revision)
|
||||
.bind(&p.title)
|
||||
.bind(&p.body)
|
||||
.bind(&p.status)
|
||||
.execute(&mut *tx)
|
||||
.await?;
|
||||
if unchanged.rows_affected() != 1 {
|
||||
continue;
|
||||
}
|
||||
let kind = match p.kind() {
|
||||
ProposalKind::Text | ProposalKind::Remove => {
|
||||
// The displaced version goes back among the proposals, with its votes.
|
||||
|
||||
Reference in New Issue
Block a user