Skip to content

docs: אנליזת באגים מכל היסטוריית הגיט — 74 באגים ב-11 דפוסים - #3377

Open
amirbiron wants to merge 1 commit into
mainfrom
claude/sleepy-faraday-yzorqm
Open

amirbiron wants to merge 1 commit into
mainfrom
claude/sleepy-faraday-yzorqm

Conversation

@amirbiron

@amirbiron amirbiron commented Sep 14, 2026 •

Copy link
Copy Markdown
Owner

✨ תיאור קצר

סריקה של כל היסטוריית הגיט (2,718 קומיטים על main, מ-2025-08-06 עד 2026-09-14) וזיהוי הבאגים שנתפסו ותוקנו בדרך. התוצר הוא מסמך אחד חדש: GUIDES/code_quality_analysis.md — 74 באגים מאומתים, מסווגים לפי חומרה ולפי 11 דפוסים. אין שינוי קוד בכלל.

📦 שינויים עיקריים

  • קוד (Backend)
  • בוט טלגרם
  • מסד נתונים/מיגרציות
  • תיעוד (docs/)
  • DevOps/CI/CD

פירוט:

  • קובץ חדש GUIDES/code_quality_analysis.md (538 שורות). אין שינוי בשום קובץ אחר.
  • המסמך פותח בסעיף מתודולוגיה שאומר במפורש מה הוא לא מכסה, כדי שלא ייקרא כרשימה ממצה.

🔎 איך זה נעשה

הריפו הגיע לסשן כ-clone שטוח של 50 קומיטים; הוא הועמק ל-2,718 קומיטים, שמתוכם 423 הם תיקון או revert. הסריקה הייתה בשלושה מעברים: כל 423 הכותרות נקראו; 87 הקומיטים שגוף ההודעה שלהם ארוך מ-1,000 תווים (הפוסט-מורטמים של התקופה האחרונה) נקראו במלואם; וכ-45 קומיטים עם הודעה קצרה נפתחו כ-diff מלא.

כל באג במסמך נראה בפועל — או בדיף, או בגוף הקומיט שמתאר את הקוד הישן. באג שלא הצלחתי לאמת לא נכנס. מה שנשאר בחוץ במכוון: תיקוני CSS, תיקוני טסטים, ו-re-push של אותו branch (למשל 11 קומיטים נפרדים באותו שם ב-2025-10-29) — אלה לא באגים לוגיים.

מקורות נוספים שנקראו: code_review_2025_10/ שיושב בריפו, ההערות בקוד (TODO/DEBUG), ו-amirbiron/amir-bug-patterns. שמות הדפוסים מיושרים לריפו ההוא (K11, K13, K14, K15, U1, U3, H6) כדי שלא ייווצרו שני מילונים. הוא כבר מתעד 12 דפוסים מ-CodeBot מהסשנים של אוגוסט-ספטמבר 2026; המסמך הזה הוא הסריקה של כל ההיסטוריה, ולכן משלים אותו ולא מחליף.

🧯 שלושה ממצאים פתוחים היום (לא היסטוריים)

אלה החלקים היחידים ב-PR שדורשים החלטה, ולא רק קריאה:

  1. סיסמת MongoDB. הוסרה מקוד הפייתון ב-Manage single mongodb connection for bot #828 (2025-10-17) אחרי כשני חודשים וחצי בקוד — אבל עדיין בריפו: בשלושה מסמכי FEATURE_SUGGESTIONS/*.md, ב-code_review_2025_10/SECURITY_FINDINGS.md (שמצטט אותה במלואה כדי להתריע עליה), ובהיסטוריית הגיט לנצח. סיסמה שלא הוחלפה היא סיסמה חיה.
  2. webapp/rules_api.py:119 מדפיס את גוף הבקשה (data.get('rule') ו-data.get('data')) ל-stdout, בקוד הייצור.
  3. github_upload_fix.py הוא קובץ שלם עם לוגי DEBUG ובלי שום קורא — מלבד רשימת חריגים בטסט ארכיטקטורה.

🧩 כלל אחד שחסר בטבלת דפוסי הבאגים

$ne בתוך partialFilterExpression אינו נתמך במונגו. הטעות חזרה ארבע פעמים (#895 תיקן, #2121 הכניס מחדש, #2627 תיקן שוב), והלקח יושב היום כהערה ב-database/manager.py:1994 וב-sticky_notes_target.py:117 — כלומר נקרא רק אחרי שכבר הגעת לשורה הנכונה. סעיף ההמלצות במסמך מציע שורת טריגר, ממופתחת לפי מה שיהיה מול העיניים (partialFilterExpression על המסך) ולא לפי הקטגוריה.

🧪 בדיקות

  • Unit
  • Integration
  • Manual

אין קוד להריץ עליו טסטים. מה שכן אומת בפועל, ולא הונח:

  • ספירת הדפוסים בטבלת הסיכום נגזרת מהרשימה עצמה, לא הוקלדה. הגרסה הראשונה שכתבתי לא תאמה — 74 שורות **דפוס:** חולצו בסקריפט, נספרו, והטבלה תוקנה למספרים האמיתיים.
  • כל מספרי המתודולוגיה נמדדו: 2,718 קומיטים, 423 תיקונים, 87 עם גוף ארוך, 1,751 קומיטים חתומים Cursor / 981 Claude / 67 Copilot, 367 מתוך 423 קומיטי התיקון AI-מיוצרים, והפילוג לפי חודשים.
  • שלושת הממצאים הפתוחים אומתו מול main הנוכחי, לא מול הקומיט שתיקן: grep על הסוד מחזיר את ארבעת הקבצים; מספרי השורות נבדקו; היעדר הקורא ל-github_upload_fix.py נבדק ב-grep על כל הריפו.
  • שני מספרים שהוקלדו ולא נספרו נתפסו ותוקנו: "12 קומיטים" היו 11, ו"11 ממצאי אבטחה והרשאות" היו 9.

מה שלא אומתתי: את הבאגים של התקופה המוקדמת (2025-08 עד 2025-11) אי אפשר לייחס לשורת קוד ספציפית, כי שם גוף הקומיט הוא רשימת כל קומיטי ה-branch מעורבבים יחד. הם מתועדים ברזולוציה גסה יותר, והמסמך אומר את זה.

📝 סוג שינוי

  • docs: שינוי תיעוד בלבד

✅ צ'קליסט

  • אין שינוי קוד, ולכן אין השפעה על Black/isort/flake8/mypy
  • אין סודות/מפתחות חדשים בקוד — ראו הממצא הפתוח למעלה על סוד שכבר קיים בריפו
  • אין מחיקות מסוכנות/פעולות על root
  • הודעת הקומיט תואמת Conventional Commits (docs:)
  • לא נדרש עדכון docs/environment-variables.rst / config_inspector_service.py — לא נוספו משתני סביבה
  • לא נדרש עדכון theming_and_css.rst — לא נוגעים בטוקנים
  • אין ג'ובים חדשים
  • עיינתי במסמכי אתר התיעוד — נתיב: docs/source-projects/codebot-patterns.md ו-RECURRING-PATTERNS.md בריפו amir-bug-patterns | המשפט: "הדפוסים כאן נתפסו על ידי ריוויוורים על PR פתוח — לא על ידי הספרייה הזו... הידע היה בריפו; הוא לא היה בהקשר של הסוכן בזמן הכתיבה." בנוסף נקראו code_review_2025_10/CODE_REVIEW_SUMMARY.md ו-SECURITY_FINDINGS.md שבריפו הזה. המסמך החדש אינו תחת docs/ ולכן אינו עובר ב-RTD ואינו כפוף למוסכמות ה-RST.

🔗 קישורים

  • Issues קשורים: אין
  • Docs Preview: לא רלוונטי — הקובץ תחת GUIDES/ ולא תחת docs/, ולכן RTD לא בונה אותו
  • מסמכים רלוונטיים: amirbiron/amir-bug-patterns — RECURRING-PATTERNS.md, CRITICAL-PATTERNS.md, docs/source-projects/codebot-patterns.md

🧩 השפעות/סיכונים

אין השפעה על פרודקשן, ביצועים או אבטחה — קובץ מארקדאון חדש בלבד, בתיקייה שלא נטענת בזמן ריצה. הסיכון היחיד הוא בכיוון ההפוך: הממצא הראשון מתאר סוד חי, והמסמך מפנה אליו בשמות הקבצים בלי לצטט אותו. אם רוצים, אפשר להחליף את שלוש ההפניות בקבצי FEATURE_SUGGESTIONS בפלייסהולדר בהמשך — זו פעולה נפרדת שלא עשיתי כאן כי היא נוגעת בקבצים שאינם חלק מהמשימה.

🧯 סיכון / החזרה לאחור (Rollback)

git revert על קומיט אחד, או מחיקת הקובץ. אין תלויות.


🤖 Generated with Claude Code

https://claude.ai/code/session_01UDATafEygTZ7rhPx16PUrE


Generated by Claude Code

Review in cubic

סריקה של כל 2,718 הקומיטים ב-main (2025-08-06 עד 2026-09-14), מתוכם 423
קומיטי תיקון או revert. שלושה מעברים: כל הכותרות, 87 הקומיטים עם גוף
ארוך מ-1,000 תווים במלואם, וכ-45 קומיטים עם הודעה קצרה כ-diff מלא.

כל באג במסמך נראה בפועל — בדיף או בגוף הקומיט שמתאר את הקוד הישן.
באג שלא אומת לא נכנס. המסמך אומר במפורש מה הוא לא מכסה: תיקוני CSS,
תיקוני טסטים, ו-re-push של אותו branch אינם באגים לוגיים ואינם ברשימה;
והתקופה המוקדמת מתועדת פחות טוב, כי שם גוף ההודעה הוא רשימת כל קומיטי
ה-branch מעורבבים יחד.

שמות הדפוסים מיושרים ל-amirbiron/amir-bug-patterns (K11, K13, K14, K15,
U1, U3, H6) כדי שלא ייווצרו שני מילונים. הריפו ההוא מתעד 12 דפוסים
מ-CodeBot מהסשנים של אוגוסט-ספטמבר 2026; המסמך הזה הוא הסריקה של כל
ההיסטוריה, ולכן משלים ולא מחליף.

שלושה ממצאים פתוחים היום, לא היסטוריים:
- סיסמת MongoDB שהוסרה מקוד הפייתון ב-#828 עדיין יושבת בשלושה מסמכי
  FEATURE_SUGGESTIONS, ב-code_review_2025_10/SECURITY_FINDINGS.md,
  ובהיסטוריית הגיט.
- webapp/rules_api.py:119 מדפיס את גוף הבקשה ל-stdout בקוד הייצור.
- github_upload_fix.py הוא קובץ שלם בלי שום קורא.

וכלל אחד שחסר בטבלת דפוסי הבאגים: $ne בתוך partialFilterExpression אינו
נתמך במונגו. הטעות חזרה ארבע פעמים (#895, #2121, #2627), והלקח יושב היום
כהערה בקוד — כלומר נקרא רק אחרי שכבר הגעת לשורה הנכונה.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UDATafEygTZ7rhPx16PUrE
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@sourcery-ai

sourcery-ai Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Documentation-only PR that adds a 538-line, evidence-based retrospective of 74 verified bugs from the repository’s full Git history, organized by severity and recurring pattern, with explicit methodology, current open risks, and recommendations for preventing recurrence.

Flow diagram for the Git history bug analysis methodology

flowchart LR
    A["2,718 commits on main"] --> B["Identify 423 fix or revert commits"]
    B --> C["Read all 423 commit titles"]
    C --> D["Read 87 long commit bodies"]
    D --> E["Inspect about 45 short-message diffs"]
    E --> F["Verify observed bugs"]
    F --> G["Document 74 bugs in 11 patterns"]
Loading

File-Level Changes

Change Details Files
Adds a comprehensive historical code-quality analysis document covering 74 verified bugs across 11 recurring patterns.
  • Documents the scan methodology, scope limitations, and evidence standards across 2,718 main-branch commits.
  • Summarizes bug counts and severity, then details all findings with impact, historical source commits, and pattern classifications.
  • Highlights three currently open findings: an exposed MongoDB credential, production request-body debug logging, and an unused DEBUG-only module.
  • Identifies a recurring MongoDB index-definition mistake involving $ne in partialFilterExpression.
  • Analyzes AI-assisted development and discovery channels, and proposes five targeted CLAUDE.md guidance rules.
GUIDES/code_quality_analysis.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 28 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 1c9434b1-d0b9-4cc6-adcb-a126af4c4093

📥 Commits

Reviewing files that changed from the base of the PR and between 94885d2 and 3aba90f.

📒 Files selected for processing (1)
  • GUIDES/code_quality_analysis.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🧯 Dangerous deletes guard report

Policy: see .cursorrules — dangerous deletions are blocked unless wrapped safely.

Summary:

  • Flagged findings (blocking): 0
    0
  • Excluded matches (not blocking): 15
  • Total matches (all files): 129

Flagged findings (file:line:snippet):
(none)

Excluded matches (by path pattern)
./webapp/static/js/md_preview.bundle.js.map:4:  "sourcesContent": ["// Markdown-it plugin to render GitHub-style task lists; see\n//\n// https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments\n// https://github.com/blog/1825-t … [truncated]
./docs/DOCUMENTATION_GUIDE.md:453:rm -rf _build
./docs/Makefile:24:	rm -rf $(BUILDDIR)
./Dockerfile:42:    rm -rf /var/lib/apt/lists/*
./Dockerfile:121:    rm -rf /var/lib/apt/lists/*
./node_modules/katex/package.json:153:    "build": "rimraf dist/ && mkdirp dist && cp README.md dist && rollup -c --failAfterWarnings && webpack && node update-sri.js package dist/README.md",
./node_modules/katex/src/fonts/Makefile:139:	rm -rf pfa ff otf ttf woff woff2
./node_modules/mermaid/dist/mermaid.js.map:4:  "sourcesContent": ["/**\n* Default values for dimensions\n*/\nconst defaultIconDimensions = Object.freeze({\n\tleft: 0,\n\ttop: 0,\n\twidth: 16,\n\theight: 16\n});\n/**\n* Default values for tr … [truncated]
./node_modules/mermaid/dist/chunks/mermaid.esm/chunk-2M32CCKP.mjs.map:4:  "sourcesContent": ["{\n  \"name\": \"mermaid\",\n  \"version\": \"11.12.0\",\n  \"description\": \"Markdown-ish syntax for generating flowcharts, mindmaps, sequence d … [truncated]
./node_modules/mermaid/dist/chunks/mermaid.esm.min/chunk-4HFYJGYH.mjs.map:4:  "sourcesContent": ["{\n  \"name\": \"mermaid\",\n  \"version\": \"11.12.0\",\n  \"description\": \"Markdown-ish syntax for generating flowcharts, mindmaps, sequen … [truncated]
./node_modules/mermaid/dist/chunks/mermaid.esm.min/chunk-4HFYJGYH.mjs:1:var r={name:"mermaid",version:"11.12.0",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graph … [truncated]
./node_modules/mermaid/dist/chunks/mermaid.core/chunk-KS23V3DP.mjs.map:4:  "sourcesContent": ["{\n  \"name\": \"mermaid\",\n  \"version\": \"11.12.0\",\n  \"description\": \"Markdown-ish syntax for generating flowcharts, mindmaps, sequence  … [truncated]
./node_modules/mermaid/dist/mermaid.min.js:1524:`,"getStyles"),c1e=RQe});var h1e={};dr(h1e,{diagram:()=>NQe});var NQe,f1e=N(()=>{"use strict";$ge();a1e();l1e();u1e();NQe={parser:Fge,db:n1e,renderer:o1e,styles:c1e}});var m1e,g1e=N(()=>{"use  … [truncated]
./node_modules/mermaid/dist/mermaid.min.js.map:4:  "sourcesContent": ["/**\n* Default values for dimensions\n*/\nconst defaultIconDimensions = Object.freeze({\n\tleft: 0,\n\ttop: 0,\n\twidth: 16,\n\theight: 16\n});\n/**\n* Default values fo … [truncated]
./README.md:842:find . -name "__pycache__" -exec rm -rf {} +

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="GUIDES/code_quality_analysis.md" line_range="3" />
<code_context>
+# אנליזת איכות קוד — CodeBot (CodeKeeper)
+
+> תאריך: 2026-09-14 | סה"כ באגים מתועדים: 74 | טווח ההיסטוריה: 2025-08-06 ← 2026-09-14
+
+---
</code_context>
<issue_to_address>
**issue:** המסמך מצהיר על 74 באגים, אך הרשימה אינה מונה באגים אטומיים: סעיף 10 מציין במפורש שני שורשים נפרדים, סעיף 73 מאגד שלוש תקלות בלתי תלויות, וסעיף 74 מאגד לפחות חמש תקלות שונות. לכן 74 הוא מספר סעיפים/ממצאים ולא מספר הבאגים שהמסמך טוען לתעד, והכותרת והסיכום מציגים ספירה מטעה.

**Suggested fix:** או לפצל כל תקלה עצמאית לסעיף ולחשב מחדש את הספירה, או לשנות את הניסוח בכל המסמך מ"74 באגים" ל"74 ממצאים/סעיפים" ולהבהיר כיצד באגים מאוגדים נספרים.
</issue_to_address>

Sourcery assessment

Approval pending. 1 finding to address first.

Blocking findings: GUIDES/code_quality_analysis.md:3


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

@@ -0,0 +1,538 @@
# אנליזת איכות קוד — CodeBot (CodeKeeper)

> תאריך: 2026-09-14 | סה"כ באגים מתועדים: 74 | טווח ההיסטוריה: 2025-08-06 ← 2026-09-14

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: המסמך מצהיר על 74 באגים, אך הרשימה אינה מונה באגים אטומיים: סעיף 10 מציין במפורש שני שורשים נפרדים, סעיף 73 מאגד שלוש תקלות בלתי תלויות, וסעיף 74 מאגד לפחות חמש תקלות שונות. לכן 74 הוא מספר סעיפים/ממצאים ולא מספר הבאגים שהמסמך טוען לתעד, והכותרת והסיכום מציגים ספירה מטעה.

Suggested fix: או לפצל כל תקלה עצמאית לסעיף ולחשב מחדש את הספירה, או לשנות את הניסוח בכל המסמך מ"74 באגים" ל"74 ממצאים/סעיפים" ולהבהיר כיצד באגים מאוגדים נספרים.

@github-actions

Copy link
Copy Markdown
Contributor

⏱️ Performance report

(No performance test durations collected. Mark tests with @pytest.mark.performance.)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3aba90f01d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1,538 @@
# אנליזת איכות קוד — CodeBot (CodeKeeper)

> תאריך: 2026-09-14 | סה"כ באגים מתועדים: 74 | טווח ההיסטוריה: 2025-08-06 ← 2026-09-14

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the claimed total of documented bugs

The value 74 is a count of numbered entries, not of the documented bugs the heading claims to count: entry 10 explicitly describes two independent roots and says its source contained eight bugs, while entry 74 combines five separate defects. This makes the total and every pattern/severity percentage presented as “bugs” an underestimate; either split independent bugs into records or consistently label 74 as findings/entries and base the statistics on that unit.

Useful? React with 👍 / 👎.


## דפוסים שקלאוד קוד פספס (ותוקנו בדרך אחרת)

הפרויקט הזה נכתב כמעט כולו בעזרת סוכני קוד: מתוך 2,718 קומיטים, **1,751 חתומים על ידי Cursor Agent, 981 על ידי Claude ו־67 על ידי Copilot**. מתוך 423 קומיטי התיקון, **367 (87%) הם עצמם AI־מיוצרים**. כלומר אין כאן "באגים של AI" מול "באגים של אדם" — יש באגים, וכולם נכתבו ותוקנו באותו זרם עבודה. מה שכן אפשר לזהות הוא **מי תפס אותם**:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disclose that commit-author counts overlap

The three stated attribution counts add up to 2,799, exceeding the stated population of 2,718 commits. Commits can have multiple agent co-author trailers, but the wording presents these as counts “out of” the total without saying they overlap, so readers cannot interpret this as a provenance breakdown. Report a unique union (and any overlap) or explicitly label these as non-exclusive matches.

Useful? React with 👍 / 👎.

@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants