fix: action the CodeRabbit review of the 0.27.0 changeset - #48
Conversation
CodeRabbit never finished a review on #36-#44 and refuses closed PRs, so the 85 production files were reviewed through review-only #47. Six findings; each verified with a test that fails on the old code. - items tags --batch: a whole-request HTTP 409 appended a second JSON document after the failed envelope and, under --idempotent, reported an already_exists no-op with exit 0. It now exits 5 with one envelope. - items create --via connector: a SaveItems error whose items were all recovered skipped the target-collection filing and reported success. Recovery now files the session; a filing failure keeps its own error. - tags rename: a typed setup error (invalid config, exit 10) was reclassified as an API error (exit 5). - Batch writes in verify mode rejected the client's synthetic response as a malformed envelope; it is now the verify no-op it stands for. Not changed: searches materialize child members (Zotero forbids child items in collections, so --prune cannot see one), and GuardedDB keyword trust (only reachable by code-authored SQL; the one user SQL path is mode=ro). The latter is filed in rumen as P3 defence in depth.
|
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: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (9)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe changes update batch tag response handling, connector item recovery and target filing, and tags rename error propagation. Tests cover verify-mode writes, request-level conflicts, recovered-item filing outcomes, and configuration errors. ChangesBatch tag mutations
Connector item recovery
Tags rename error handling
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No issue identified in these changes prevents merging after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 61.54% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 8 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Seventeen breaking entries, seventeen fixes, four additions. Breaking because exit codes, JSON shapes and command behaviour changed for scripted and agent callers; pre-1.0, so that ships in a minor with an explicit callout rather than a major signal. Additions: export snapshot --format bibtex|ris|csljson, items unfiled --suggest, searches materialize refresh/--prune, and import monitor. All four were exercised against a live 4,906-item Zotero 7 library before this cut; that run found and fixed two defects (#45), and a CodeRabbit review of the whole production changeset found four more (#48). papio is unaffected: its zotio floors are 0.10.0 and 0.13.0 (tags), and the one command it runs, items tags add|remove --automatic[-only] --tag T <key>, takes one key and no --batch, so none of the breaking entries reach it.
Actions CodeRabbit's review of the 0.27.0 production changeset (#47, a review-only PR, because CodeRabbit never finished a review on #36–#44 and refuses closed PRs).
Each finding was checked against the code. Each fix has a test that fails without it.
items tags --batch: request-level 409--idempotentreported analready_existsno-op with exit 0.items create --via connector: recovered SaveItems errortags rename: typed setup errorsearches materializechild memberscollections), so--prunecan never see one as a member.sql) runs on amode=roconnection. Every other guarded read is a code-authored constant. Filed in rumen as P3 defence in depth. A 178-line token gate was written and reverted, because it adds release risk with no reachable defect behind it.make cipasses. The raw log has nopanic:,DATA RACE,FAILor(cached).Summary by CodeRabbit
tags renamenow preserves configuration errors and their exit codes, including exit code 10 for invalid configuration.