Hermes 284313f908
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
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

154 lines
4.0 KiB
JSON

[
{
"id": "T001",
"description": "UI: the ticket dashboard shows `Move to Board` when at least one ticket is selected and the user can update tickets.",
"implemented": true,
"featureIds": [
"F001"
]
},
{
"id": "T002",
"description": "UI: the ticket dashboard does not expose an actionable `Move to Board` control when the user lacks update permission.",
"implemented": true,
"featureIds": [
"F001",
"F011"
]
},
{
"id": "T003",
"description": "UI: opening bulk move shows the selected ticket summary and destination board and status controls.",
"implemented": true,
"featureIds": [
"F002"
]
},
{
"id": "T004",
"description": "UI: choosing a destination board reloads the status picker with only statuses valid for that board.",
"implemented": true,
"featureIds": [
"F003"
]
},
{
"id": "T005",
"description": "UI: choosing a destination board preselects that board's default status.",
"implemented": true,
"featureIds": [
"F004"
]
},
{
"id": "T006",
"description": "UI: the user can replace the preselected default with another valid destination-board status before confirming.",
"implemented": true,
"featureIds": [
"F005"
]
},
{
"id": "T007",
"description": "UI: confirmation stays disabled until a destination board is selected.",
"implemented": true,
"featureIds": [
"F006"
]
},
{
"id": "T008",
"description": "UI: confirmation stays disabled and the dialog explains the problem when the selected destination board has no valid statuses.",
"implemented": true,
"featureIds": [
"F006"
]
},
{
"id": "T009",
"description": "Integration DB-backed: bulk move updates a ticket's `board_id` and uses the destination board's default status when no override is provided.",
"implemented": true,
"featureIds": [
"F007",
"F008",
"F009"
]
},
{
"id": "T010",
"description": "Integration DB-backed: bulk move uses the explicitly selected destination status when the user overrides the default.",
"implemented": true,
"featureIds": [
"F005",
"F009"
]
},
{
"id": "T011",
"description": "Integration DB-backed: bulk move clears `category_id` and `subcategory_id` for successfully moved tickets.",
"implemented": true,
"featureIds": [
"F010"
]
},
{
"id": "T012",
"description": "Integration DB-backed: bulk move rejects a destination status that does not belong to the chosen destination board.",
"implemented": true,
"featureIds": [
"F012"
]
},
{
"id": "T013",
"description": "Integration DB-backed: bulk move returns partial success when one selected ticket can be moved and another fails validation.",
"implemented": true,
"featureIds": [
"F007",
"F013"
]
},
{
"id": "T014",
"description": "Integration DB-backed: bulk move returns per-ticket permission failures instead of moving unauthorized tickets.",
"implemented": true,
"featureIds": [
"F011",
"F013"
]
},
{
"id": "T015",
"description": "UI: partial-success bulk move keeps only failed tickets selected and shows per-ticket failure messages in the dialog.",
"implemented": true,
"featureIds": [
"F013"
]
},
{
"id": "T016",
"description": "UI: full-success bulk move closes the dialog and clears the dashboard selection.",
"implemented": true,
"featureIds": [
"F014"
]
},
{
"id": "T017",
"description": "UI: after successful moves, the dashboard refreshes so moved tickets disappear when they no longer satisfy the active filters.",
"implemented": true,
"featureIds": [
"F015"
]
},
{
"id": "T018",
"description": "Regression: bulk delete behavior remains unchanged after adding the bulk move action to the dashboard header.",
"implemented": true,
"featureIds": [
"F001",
"F002"
]
}
]