feat: expose bulk-delete (cues, cueapi #650 / cli #46 parity)#11
Merged
Conversation
Closes (in part) Backlog row cmousydyn — originally mistitled 'messages bulk-delete'; PM corrected to 'cues' on 2026-05-09 ~20:45Z after pre-verify caught the mismatch (cueapi-core has zero @router.delete on messages.py; PR #650 is cues, not messages). Adds: - action.yml `command: bulk-delete` exposure with new `cue-ids` input (whitespace-separated; max 100 per call; always passes --yes since CI has no interactive confirm; CLI sends X-Confirm-Destructive: true) - Validation: error-and-exit if cue-ids empty or > 100 IDs - Updated command description list + unsupported-command error message parity-manifest.json: - Add `bulk-delete` to commands_exposed_via_action - Remove `messages bulk-delete` from commands_missing_from_action (was factually wrong; the underlying endpoint doesn't exist on /v1/messages — corrective entry now in commands_exposed_via_action) - Correct the post-2026-05-04 PR list entry for #650 from 'DELETE /v1/messages bulk delete' to 'POST /v1/cues/bulk-delete' with correction note Companion ports (same Backlog row): - cueapi-python PR #37 (merged 2026-05-09 20:49Z) - cueapi-mcp PR #32 (in flight) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Exposes
cueapi bulk-deleteas thebulk-deleteAction command. Closes (in part) Backlog rowcmousydyn— originally mistitled "messages bulk-delete"; PM corrected to "cues" on 2026-05-09 ~20:45Z after my pre-verify caught the title-vs-reality mismatch.What's added
action.ymlbulk-deleteto thecommandinput description list (Cue management section).cue-idsinput — whitespace/newline-separated cue IDs, max 100 per call. Description notes per-ID atomic semantic + the always-pass---yes/CLI-sends-X-Confirm-Destructivepattern.CUE_IDS: ${{ inputs.cue-ids }}.runs.stepscase branch: validates 1-100 IDs, splits on whitespace viaread -ra, appends each as positional arg, always passes--yes. Fails with explicit::error::ifcue-idsempty or > 100.bulk-delete.parity-manifest.jsonbulk-deletetocommands_exposed_via_actionwith full provenance note (cueapi #650, cli #46, the title-correction trail).messages bulk-deleteentry fromcommands_missing_from_action(PR #650 is cues, not messages; messages bulk-delete endpoint doesn't exist on cueapi-core or private cueapi).post_2026_05_04_cueapi_prs_not_yet_in_actionentry for #650 fromDELETE /v1/messages bulk deletetoPOST /v1/cues/bulk-deletewith a correction note.Behavior
Server returns
{"deleted": [...], "skipped": [...]}printed to stdout. Per-ID atomic — IDs that don't exist or aren't owned by the caller land inskipped(silent skip on miss; no info leak about other tenants' cues).Stats
Test plan
python3 -c "import yaml; yaml.safe_load(open('action.yml'))"validpython3 -c "import json; json.load(open('parity-manifest.json'))"validread -rahandles both space- and newline-separated inputs (standard bash)::error::before any network call (matches server cap; fail-fast)cue-idsfails with::error::(avoids invoking CLI with no args)Note re: Backlog row title
Originally
cmousydynwas titled "Parity port: bulk delete messages (#650) → cueapi-python + cueapi-mcp + cueapi-action". Pre-verify caught the mismatch — PR #650 is about cues, not messages. PM patched the row title to 'cues' and confirmed interpretation 1 (port the cues bulk-delete). This PR ships the cueapi-action piece; cueapi-python (#37, merged) + cueapi-mcp (#32, in flight) ship the other pieces.Related
feat(cues): bulk delete + stale-cue discovery filters)Closes
cmousydyn000004lgs0drkbap. Row stays in-progress until cueapi-mcp PR #32 also ships.🤖 Generated with Claude Code