Release v1.9.0 — Bulk Operations Expansion #41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release/1.9.0"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Release v1.9.0 — Bulk Operations Expansion
Changes
Summary
Adds three new bulk operation tools to complement the existing
bulk_update_work_packagesandbulk_transition_work_packages. All follow the same pattern: independent item processing, per-item results, max batch size of 200. Total tool count: 67.Checklist
References
Version: 1.9.0 (Gravity PM)
Epic: OP#2371 — Bulk Operations Expansion
PR Review — Release v1.9.0: Bulk Operations Expansion
Reviewer: Gravity Bot (automated)
Scope: 5 files changed, +635 / −27 lines across 6 commits
Files:
index.js,test.js,README.md,package.json,wiki-drafts/06-tool-reference.mdVerdict: Acceptable
No blocking findings. The three new bulk tools (
bulk_create_work_packages,bulk_create_relations,bulk_delete_work_packages) follow existing patterns consistently and are well-tested.Findings
🟡 IMPORTANT — Tool reference header not updated
File:
wiki-drafts/06-tool-reference.md, line 3Description: The header still reads "All 62 tools organized by category" but should be 67 to match the README and actual tool count.
Fix: Change
62→67on line 3.🔵 MINOR — Inconsistent response object in
bulk_create_relationsFile:
index.js, bulk_create_relations success handlerCode:
Description: Uses
data.type(raw API response) mixed withc.*(cleaned HAL response) in the same template literal. All other bulk tools use the cleaned response exclusively.typeis a top-level string so both work today, but usingc.typewould be consistent with the established pattern and resilient to futurecleanHalResponsechanges.Fix: Change
data.type→c.type.⚪ NITPICK — Bulk delete fetches before deleting
File:
index.js,bulk_delete_work_packageshandlerDescription: Each item makes 2 API calls (GET for subject, then DELETE). This matches the singular
delete_work_packagebehavior and provides readable confirmation, but at scale (e.g., 200 items) doubles the API load. Not a problem today — just noting the tradeoff is intentional.Quality Assessment
zId,cleanStringParam, CSV/JSON string parsing for ID arrays)Test Results
HUMAN REVIEW
bulk_delete_work_packagestool permanently deletes work packages with no confirmation step beyond the tool description warning. Consider whether the tool's advisory text is sufficient for your use case, or whether an additional safeguard (e.g., dry-run mode) would be warranted for a destructive batch operation.Reviewed by Gravity Bot — advisory only, does not approve or reject
@ai wrote in #41 (comment):
I like the idea of just copying the deleted data so a /tmp/ file so that it's recoverable and doesn't require any blockers or additional steps to use somewhat safely.
PR Review Followup
Responding to review posted on 2026-03-16 (review comment) and Mike's feedback.
Triage Summary
Fixes Applied
The following findings have been resolved on this branch:
efda1b7data.typeshould bec.typein bulk_create_relations for consistency — fixed inefda1b7/tmp/bulk_delete_backup_<timestamp>.jsonbefore deletion — fixed inefda1b7Not Actioned
Test Results
This PR should now be ready for re-review.
This followup was generated by the gr-pr-followup skill.