Skip to content

Claude/mcp codekeeper webapp ldnzsg - #3190

Merged
amirbiron merged 3 commits into
mainfrom
claude/mcp-codekeeper-webapp-ldnzsg
Jul 20, 2026
Merged

Claude/mcp codekeeper webapp ldnzsg#3190
amirbiron merged 3 commits into
mainfrom
claude/mcp-codekeeper-webapp-ldnzsg

Conversation

@amirbiron

Copy link
Copy Markdown
Owner

בוצע ונדחף. סיכום:

מה נבנה — קיצור דרך לעריכת תיאור

בעמוד הצפייה בקובץ (/file/<id>), בתפריט ⋮:

  • פריט "תיאור" חדש, ראשון — פותח מודאל קטן עם התיאור הנוכחי, מונה תווים (500), ושמירה.
  • הסדר החדש: 📝 תיאור → 📌 נעץ לדשבורד → 📤 שתף → השאר (כמבוקש).
  • שמירה מעדכנת את התיאור מיד מתחת לשם ואת תווית התפריט, בלי רענון.
  • זמין לכל הקבצים.

למה זה יצא קטן ונקי: לא היה צורך בקוד שרת חדש — יש POST /api/file/<id>/quick-update שמעדכן את התיאור in-place (מטא-דאטה, לא יוצר גרסה חדשה). המודאל מחקה את מודאל ה"שתף" הקיים. שינוי בקובץ אחד (view_file.html).

הבהרה על הטרמינולוגיה: קראת לזה "הערה" — מימשתי את זה כשדה התיאור (כמו שהבהרת), והתווית בכפתור היא "ערוך תיאור" / "הוסף תיאור". אם אתה מעדיף שיכתוב "הערה", שנייה לשנות.

אימות: Jinja parse תקין, תחביר JS תקין, אין קוד Python שהשתנה (אין טסט שנשבר). E2E כדאי שתעשה אחרי דיפלוי: פתח קובץ → ⋮ → תיאור → ערוך ושמור → בדוק שמתעדכן מתחת לשם וגם נשמר אחרי refresh.

⚠️ שתי הערות חשובות

  1. הענף/PR: השינוי נדחף לענף המיועד claude/mcp-codekeeper-webapp-ldnzsg, אז הוא הצטרף ל-PR Claude/mcp codekeeper webapp ldnzsg #3189 — יחד עם פיצ'ר הפתקים של ה-MCP. זה מערבב שני פיצ'רים (MCP + webapp) ושני שירותים לדיפלוי (MCP + webapp) ב-PR אחד. אם תעדיף שכל בקשה תהיה ב-PR נפרד, תגיד לי (זה ידרוש אישור לענף נפרד).
  2. דיפלוי: השינוי הזה דורש דיפלוי לוובאפ (בניגוד לפתקים שדורשים את שירות ה-MCP).

claude added 2 commits July 20, 2026 09:18
שלושה כלים חדשים מעל קולקציית sticky_notes הקיימת של הוובאפ:
- codekeeper_list_notes — פתקי הקובץ (קריאה טהורה, בלי ה-backfill של ה-GET בוובאפ)
- codekeeper_create_note — פתק חדש על קובץ קיים; line מעגן לשורת מקור,
  בלעדיו הפתק נוצר צף עם sentinel __floating__ מפורש (אחרת ה-JS מעגן
  אוטומטית לשורה הקרובה ודורס את הכוונה)
- codekeeper_update_note — עדכון חלקי לפי note_id, עם annotation נפרד
  (destructive+idempotent) כי פתק נדרס במקום ואין לו היסטוריית גרסאות

עקרונות:
- כותבים בדיוק את סכמת הוובאפ (scope_id מ-sticky_notes_scope.make_scope_id
  הקנוני, ברירות מחדל בפריטת הקליינט) — פתק מה-MCP מופיע מיד ב-UI
- זהות תמיד מהטוקן; יצירה/עדכון מאחורי require_write
- תוכן >5000 תווים נדחה בשגיאה (לא קיטום שקט — סוכן לא ישים לב לאובדן)
- מגן אנטי-לולאה: עד 200 פתקים לקובץ ביצירה
- אינדקס (user_id, scope_id) שחסר היום נוצר lazy/best-effort — משרת גם את
  שאילתת ה-scope הזהה של הוובאפ
- בלי מחיקה ובלי תזכורות (non-goal מתועד); אפס שינויי קוד בוובאפ —
  דיפלוי לשירות ה-MCP בלבד

בדיקות: 19 טסטים הרמטיים חדשים (סניטציה, ולידציות, sentinel, צבעים,
scope filter מול make_scope_id האמיתי, סריאליזציה) + עדכון טסט הרישום.
188 טסטי MCP עוברים; black/flake8/doc8 נקיים; Sphinx נבנה עם 0 אזהרות.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WNFuSyshwpRcxozVZEui5K
הוספת פריט "תיאור" בתפריט 3-הנקודות בעמוד הצפייה בקובץ (view_file),
ראשון ברשימה, שפותח מודאל קטן לעריכת שדה התיאור — חוסך את הכניסה
לעריכת קובץ מלאה רק כדי לשנות תיאור. "נעץ לדשבורד" עלה לשני, "שתף"
לשלישי.

- משתמש ב-endpoint הקיים POST /api/file/<id>/quick-update שמעדכן את
  התיאור in-place (מטא-דאטה, בלי גרסה חדשה) — אין קוד שרת חדש
- מודאל בדפוס מודאל השיתוף הקיים (Escape, לחיצה על הרקע, טוסט הצלחה),
  עם textarea ומונה תווים (עד 500, תואם למגבלת ה-endpoint)
- עדכון חי של התצוגה מתחת לשם ושל תווית התפריט בלי רענון עמוד
- זמין לכל הקבצים (התיאור הוא מטא-דאטה אוניברסלי)
- אין בעיית מודאל-בתוך-מודאל: התפריט (dropdown) נסגר לפני שהמודאל
  נפתח, בדיוק כמו "שתף קובץ" הקיים
- שינוי template בלבד; דורש דיפלוי לוובאפ

בדיקות: Jinja parse תקין, תחביר JS תקין; אין קוד Python שהשתנה.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WNFuSyshwpRcxozVZEui5K
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown

🧯 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]
./README.md:842:find . -name "__pycache__" -exec rm -rf {} +
./Dockerfile:42:    rm -rf /var/lib/apt/lists/*
./Dockerfile:121:    rm -rf /var/lib/apt/lists/*
./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]
./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/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/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/katex/src/fonts/Makefile:139:	rm -rf pfa ff otf ttf woff woff2
./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",
./docs/Makefile:24:	rm -rf $(BUILDDIR)
./docs/DOCUMENTATION_GUIDE.md:453:rm -rf _build

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@amirbiron, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1da9a3a2-8fb2-4b19-b71f-6d2302c0baef

📥 Commits

Reviewing files that changed from the base of the PR and between cda6619 and e97bee5.

📒 Files selected for processing (1)
  • webapp/templates/view_file.html
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/mcp-codekeeper-webapp-ldnzsg

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

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown

⏱️ Performance report

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

@github-actions

Copy link
Copy Markdown

📖 Documentation Preview

The documentation has been built successfully!

To view locally:

  1. Download the artifacts
  2. Extract the zip file
  3. Open index.html in your browser

@codecov

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@amirbiron
amirbiron merged commit e53c0c7 into main Jul 20, 2026
21 checks passed
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