Repository navigation
md_parser: פער סוג 7 מוגדר כ"מכל" — גם ציטוט, לא רק פריט רשימה - #3455
Conversation
התגובה באישו ה-upstream הביאה שלושה מקרי גבול, וכולם נמדדו מול שלושת המימושים. שניים מסכימים (תגית מוזחת ארבעה רווחים בתוך פריט, גם עם שני אבות) והם נכנסו כצורות מקובעות מסכימות — תיקון נאיבי upstream שובר בדיוק אותם, ואם ספרייה עתידית תסטה בהם _compare יתפוס אצלנו. השלישי הוא פער אמיתי שלא כיסינו: `> a` ואז `<br>` צמוד — אצלנו כותרת, ב-cmark ובמימוש הייחוס אפס. הרחבתי את המשפחה ל-`>` לצד `-` ו-`1.` ונמדד ששלושת המכלים מתנהגים זהה, ולכן המחלקה המקובעת מוגדרת עכשיו כ"מכל" ולא כ"פריט רשימה", בשלושת המקומות. המספרים נגזרים ולא מוקלדים: 11,549 מושוות, 12 מוחרגות. אין שינוי בפארסר. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YSksrtTEth7eY52jwgYVbb
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Reviewer's Guideה-PR אינו משנה את הפארסר עצמו; הוא מרחיב את בדיקות האורקל של פער HTML מסוג 7 כך שיכסו ציטוטים בנוסף לרשימות, מקבע שתי צורות גבול מוסכמות, ומעדכן את התיעוד והספירות הנגזרות ל-11,549 השוואות ו-12 צורות מוחרגות. Flow diagram for expanded HTML type 7 oracle coverageflowchart LR
G["Generated Markdown shapes"] --> O["Oracle comparison tests"]
O --> C["cmark-gfm / reference implementation"]
O --> M["markdown-it"]
C --> R["Classify matching and known divergent cases"]
M --> R
R --> S["11,549 comparisons"]
R --> X["12 excluded type 7 container shapes"]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
🧯 Dangerous deletes guard reportPolicy: see .cursorrules — dangerous deletions are blocked unless wrapped safely. Summary:
Flagged findings (file:line:snippet): Excluded matches (by path pattern) |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughChangesהרחבת בדיקות Markdown Oracle
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Other Merge Risk: ⚪ Minimal · up to The expanded oracle tests and synchronized compatibility documentation are ready to merge. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. תגיות ומכלים נפגשים בשורה, Comment |
⏱️ Performance report(No performance test durations collected. Mark tests with |
📖 Documentation PreviewThe documentation has been built successfully!
To view locally:
|
משפט המקום-שמור ליד המחולל הוחלף בקישור לאישו, ומספר האישו נכנס גם לשני המקומות האחרים שנושאים את אותה אזהרה על הפער — ה-docstring של md_parser וה-docstring של קובץ האורקל — כדי ש-grep על המזהה ימצא את כולם ביום שהאישו ייסגר. ההערה ליד המחולל אומרת גם מה הסימן לכך: הטסט הפרמטרי של הפער ייפול על גרסה מתוקנת, ואז מוחקים את ההחרגה. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YSksrtTEth7eY52jwgYVbb
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
✨ תיאור קצר
commonmark.py0.9.2). שניים מסכימים בכל המימושים ונכנסו כצורות מקובעות מסכימות. השלישי —> aואז<br>צמוד — הוא פער אמיתי שהמשפחה שלנו לא כיסתה, ולכן המחלקה המקובעת מוגדרת עכשיו כ"תגית צמודה לשורת מכל (פריט רשימה או ציטוט)" ולא כ"פריט רשימה" בלבד.📦 שינויים עיקריים
פירוט נקודות (רשימת תבליטים):
tests/test_md_parser_oracle.py:_LIST_MARKERSהפך ל-_CONTAINER_MARKERSעם>לצד-ו-1.; המחולל_type7_after_list_shapesשונה שמו ל-_type7_after_container_shapesכי השם הישן היה שקר אחרי ההרחבה. ההערה מסבירה שהציטוט הגיע מהתגובה באישו, שנמדד שהוא מתנהג זהה לשני סמני הרשימה (צמוד = פער, מופרד = הסכמה), ולמה: כלל הציטוט ב-markdown-it מסמן המשכים לא-נבדקים בהזחה שלילית, ובדיקת ה-terminate של סוג 7 לא מתבצעת מול המכל החיצוני._TYPE7_INDENTED_AGREEING— התגית מוזחת ארבעה רווחים בתוך פריט, וגם עם שני אבות (מקרים A ו-B מהתגובה). הן נכנסות ל-_compareולספירה. תפקידן: תיקון נאיבי upstream לסוג 7 שובר בדיוק אותן, ואם ספרייה עתידית תסטה בהן, זה ייתפס אצלנו ולא יתגלה בשקט.test_the_excluded_class_is_exactly_the_glued_shapes_and_nothing_moreוהטסט הפרמטרי של אי-ההסכמה מודדים עכשיו את שלושת המכלים (4 תגיות × 3 מכלים = 12), ומקבעים במפורש שכל צורה מוחרגת היא בדיוק צורה צמודה ולא יותר מזה.test_the_generated_shape_count_matches_the_proseמחשב את שתי הצורות החדשות ובודק גם את "מחלקה אחת ידועה ומקובעת של 12 צורות" מול המונה בפועל. הוא נופל אם אחד משלושת מקומות הפרוזה יסטה מהמחולל.services/md_parser.py(docstring בלבד) ו-requirements/base.txt(הערה בלבד): המספרים והגדרת המחלקה עודכנו, וההפניה מצביעה על שם המחולל החדש.executablebooks/markdown-it-py#434נכנס לשלושת מקומות הפרוזה שנושאים את אותה אזהרה על הפער — ה-docstring של המחולל (במקום משפט המקום-שמור), ה-docstring שלmd_parser, וה-docstring של קובץ האורקל. לפיbugbot-rules/prose-restates-code-fact.md: ההפניה שאפשר למצוא ב-grepהיא מספר האישו, והיא צריכה להופיע בכל המקומות. ההערה ליד המחולל אומרת גם מה הסימן לסגירת האישו: הטסט הפרמטרי של הפער ייפול על גרסה מתוקנת, ואז מוחקים את ההחרגה ולא מרפים אותו.🧪 בדיקות
md_parser.pyכבר מייבא מ-.line_endingsומ-doc_sections.MAX_SECTIONS):test_md_parser.py,test_md_parser_oracle.py,test_mcp_outline.py,test_mcp_docs_handlers.py,test_rst_parser.py— 101 עוברים.flake8נקי. אחרי הקומיט השני — שתי חבילות הפארסר שוב ירוקות ו-flake8נקי._compareשלה — כלומר הצורות המסכימות באמת מודדות משהו ולא עוברות ריק.scripts/compare_md_parser_to_cmark.pyעל שני הקורפוסים: אפס אי-הסכמות, ללא שינוי.🧪 בדיקות נדרשות ב‑PR
📝 סוג שינוי
✅ צ'קליסט
md_parserוההערה ב-base.txt(שני מקומות מתוך שלושה שמצהירים "אפס אי-הסכמות"; השלישי הוא ה-docstring של קובץ הטסטים)md_parser:כפי שנהוג בסדרה הזו)AI-MAP.md← אין עמוד על הפארסר עצמו (הוא יקבל עמוד ב-PR 5 עם החיווט).CodeBot – Project Docsלא נפתח מעבר לזה, כי השינוי כולו בתוך קובץ הטסטים והפרוזה שמתארת אותו.TESTING-PATTERNS.md(T1/T2 — הטסטים הורצו על הקוד הישן),claude-md-snippets/testing.mdכלל 5,RECURRING-PATTERNS.mdR6 (grepלפני שם חדש —_TYPE7_INDENTED_AGREEINGו-_CONTAINER_MARKERSלא היו קיימים), ו-bugbot-rules/prose-restates-code-fact.md(לקומיט השני — מספר האישו בכל מקום שנושא את האזהרה).🧩 השפעות/סיכונים
test_a_type7_tag_glued_to_a_container_still_disagrees_as_measuredייפול. זה מכוון ומתועד ב-.. warning::שלו: אז מוחקים את המחלקה המוחרגת ומעדכנים את הפרוזה, לא מרפים את הטסט.🔗 קישורים
docs/)🧯 סיכון / החזרה לאחור (Rollback)
revertשל שני הקומיטים. אין מיגרציה, אין שינוי סכימה, אין שינוי תלות (הגרסה הנעוצה של markdown-it-py לא זזה).🤖 Generated with Claude Code
https://claude.ai/code/session_01YSksrtTEth7eY52jwgYVbb
<source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg">Summary by Sourcery
Expand the fixed Markdown parser oracle exception to cover type-7 HTML tags adjacent to block containers while preserving agreement checks for validated edge cases.
Enhancements:
Build:
Documentation:
Tests: