Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
3.8 KiB
3.8 KiB
Scratchpad — Bulk move tickets to a new board
- Plan slug:
bulk-move-tickets-to-new-board - Created:
2026-03-15
What This Is
Keep a lightweight, continuously-updated log of discoveries and decisions made while implementing this plan.
Prefer short bullets. Append new entries as you learn things, and also update earlier notes when a decision changes or an open question is resolved.
Decisions
- (2026-03-15) Bulk move will use partial-success reporting identical in spirit to bulk delete so one invalid ticket does not block the entire selection.
- (2026-03-15) Destination statuses in the dialog must be limited to statuses valid for the selected destination board, and the board's default status will be preselected.
- (2026-03-15) Moving a ticket to a new board must clear
category_idandsubcategory_idto match existing single-ticket board-change behavior. - (2026-03-15) The dependency branch
feature/board-specific-statuseswas merged before planning so this work is based on board-owned ticket statuses.
Discoveries / Constraints
- (2026-03-15) Existing bulk ticket actions live in
packages/tickets/src/components/TicketingDashboard.tsx; bulk delete already has the desired partial-success UX shape. - (2026-03-15) Existing dashboard selection is page-based. This plan assumes bulk move acts on the currently selected tickets without changing selection semantics.
- (2026-03-15)
feature/board-specific-statuseschanged status ownership, validation, APIs, migrations, and ticket UI behavior; bulk move should reuse that validation rather than invent its own board/status rules. - (2026-03-15) Likely server-side implementation points are
packages/tickets/src/actions/ticketActions.tsand/orpackages/tickets/src/actions/optimizedTicketActions.ts, depending on which path best preserves existing ticket update semantics.
Commands / Runbooks
- (2026-03-15) Merge dependency branch:
git merge feature/board-specific-statuses - (2026-03-15) Scaffold ALGA plan:
python3 /Users/roberisaacs/.codex/skills/alga-plan/scripts/scaffold_plan.py "Bulk move tickets to a new board" --slug bulk-move-tickets-to-new-board - (2026-03-15) Relevant dashboard bulk-action source:
packages/tickets/src/components/TicketingDashboard.tsx - (2026-03-15) Relevant ticket action source:
packages/tickets/src/actions/ticketActions.ts
Links / References
- PRD:
ee/docs/plans/2026-03-15-bulk-move-tickets-to-new-board/PRD.md - Bulk dashboard UI:
packages/tickets/src/components/TicketingDashboard.tsx - Ticket action layer:
packages/tickets/src/actions/ticketActions.ts - Optimized ticket update path:
packages/tickets/src/actions/optimizedTicketActions.ts - Ticket detail board/status behavior:
packages/tickets/src/components/ticket/TicketInfo.tsx - Board-scoped status branch artifacts now merged into this branch.
Open Questions
- None currently.
Iteration Notes
- (2026-03-15) Completed
Move to Boardheader action visibility gating so bulk move is rendered only whenhasSelection && canUpdateTickets. - (2026-03-15) Completed bulk-move dialog integration in
TicketingDashboard.tsx:- Destination board/status loading and default preselect logic.
- Confirm handler with per-ticket partial-success handling and refresh/selection behavior.
- Close handler/state reset behavior.
- (2026-03-15) Added
moveTicketsToBoardaction coverage inpackages/tickets/src/actions/ticketActions.moveToBoard.test.tsfor default status, override status, invalid status rejection, partial success, and permission failure behavior. - (2026-03-15) Added component contract coverage in
packages/tickets/src/components/TicketingDashboard.moveBulk.contract.test.tsfor all bulk move UI acceptance points plus non-regression bulk-delete checks. - (2026-03-15) Marked all plan
features.jsonandtests.jsonitems as implemented and prepared for checkpoint commit.