[BUG]: Coach Service Updates Non-Existent Field (total_points vs score)
I maintainer di solito rispondono entro 1 giorno
@Basharkhan7776 ci sta già lavorando.
Dal 24/10/2026.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 85/100
Direzione di ricerca
Apri backend/services/coach.go alla riga 117 e cambia il campo $inc da total_points a score per corrispondere al modello User in backend/models/user.go:33. Esegui il test temporaneo TestBUG06_UpdateUserPoints_WritesUnmappedField o avvia MongoDB e chiama POST /coach/strengthen-argument/evaluate per verificare. Fatto significa che lo score dell'utente si incrementa e nessun campo total_points viene creato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug Description
UpdateUserPoints increments a field named total_points, but the User model only defines score:
// backend/services/coach.go:117
func UpdateUserPoints(userID interface{}, points int) error {
_, err := db.MongoDatabase.Collection("users").UpdateOne(
context.Background(),
bson.M{"_id": userID},
bson.M{"$inc": bson.M{"total_points": points}},
)
return err
}
// backend/models/user.go:33
Score int `bson:"score" json:"score"`
MongoDB is schemaless, so the update succeeds and silently creates a new total_points field on the user document. Because no Go code reads total_points, the mapped score never changes, and the awarded points never appear in profiles or leaderboards.
Both coach flows call this helper:
EvaluateStrengthenedArgumentawardsevaluation.Score * 10points (routes/coach.go:61-65).SubmitProsConsawardsevaluation.Scorepoints (routes/coach.go:151).
Steps to Reproduce
- Start MongoDB via Docker:
docker start debateai-mongo-1 - Insert a user with score: 100.
- Call the coach points helper for that user:
services.UpdateUserPoints(user.ID, 50)
(In the app this is triggered by POST /coach/strengthen-argument/evaluate or POST /coach/pros-cons/submit.) - Read the user document:
db.users.findOne({ email: "[email protected]" })
// { ..., score: 100, total_points: 50 }
Automated reproduction used a temporary test (TestBUG06_UpdateUserPoints_WritesUnmappedField) that inserts a user with score = 100, calls UpdateUserPoints(userID, 50), and inspects both the typed model and the raw BSON document.
Logs and Screenshots
=== RUN TestBUG06_UpdateUserPoints_WritesUnmappedField
zz_bug06_tmp_test.go:64: user before: score=100, awarded=50
zz_bug06_tmp_test.go:65: user after: score=100, total_points=50
zz_bug06_tmp_test.go:74: BUG CONFIRMED: UpdateUserPoints wrote total_points=50 while mapped score stayed 100
--- PASS: TestBUG06_UpdateUserPoints_WritesUnmappedField (0.05s)
PASS
ok arguehub/services 0.062s
Environment Details
- OS: Linux (x86_64)
- Go: go1.24
- Framework: Gin Gonic v1.9.1
- Database: MongoDB 7.0 (debateai-mongo-1, port 27017)
- Cache: Redis 7-Alpine (debateai-redis-1, port 6379)
- Affected endpoints: POST /coach/strengthen-argument/evaluate, POST /coach/pros-cons/submit
- Affected code: backend/services/coach.go:117-123
- Severity: High (Defect / Gamification data loss)
Impact
High - Major feature is broken
Code of Conduct
- I have joined the Discord server and will post updates there
- I have searched existing issues to avoid duplicates
- Lingua principale
- TypeScript
- Stelle
- 105
- Fork
- 258
- Merge medio
- 1g 21h
- PR unite (30g)
- 43
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun 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 AOSSIE-Org/DebateAI
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
AOSSIE-Org/DebateAI#784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG]: IDOR : Missing Ownership Check in ConcedeDebateForse già presa @Basharkhan7776 l’ha presa 5 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
AOSSIE-Org/DebateAI#772 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG]: Header avatar and display name don't update after editing the profileForse già presa @mithunkc017-ship-it l’ha presa 5 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
AOSSIE-Org/DebateAI#770 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG]: Signed-out visitors see a fake account menu ("User", "No email", "Sign out") on public pagesForse già presa @dhruvbit l’ha presa 5 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
AOSSIE-Org/DebateAI#769 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 1/5 1-3 ore Idoneità per principianti 90/100
AOSSIE-Org/DebateAI#768 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di AOSSIE-Org/DebateAI
Issue simili
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrorsForse già presa @as992949791 l’ha presa oggi. Apertagood first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
reticlehq/reticle#2033 · 1 commento ·
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
-
area:quality p3-medium ready-for-agent type:docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
fderuiter/deruiter.dev#3589 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
manfredsteyer/angular-oauth2-oidc#1514 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
marmelab/react-admin#11431 ·
I maintainer di solito rispondono entro 1 giorno