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

267 lines
8.4 KiB
JSON

[
{
"id": "F001",
"description": "Add board ownership to ticket statuses in the existing statuses schema while leaving non-ticket statuses unchanged.",
"implemented": true,
"prdRefs": ["FR1"]
},
{
"id": "F002",
"description": "Add data constraints and indexes that support board-scoped ticket status uniqueness and lookup performance.",
"implemented": true,
"prdRefs": ["FR1"]
},
{
"id": "F003",
"description": "Clone current tenant-wide ticket statuses once per board during migration, preserving metadata and assigning new status ids.",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F004",
"description": "Build a deterministic migration remap from old global ticket status ids to new board-owned ticket status ids by board.",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F005",
"description": "Remap existing ticket rows to the new board-owned ticket status ids during migration.",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F006",
"description": "Remap inbound ticket default status references using board context during migration.",
"implemented": true,
"prdRefs": ["FR2", "FR5"]
},
{
"id": "F007",
"description": "Remap billing renewal default ticket status references using board context during migration.",
"implemented": true,
"prdRefs": ["FR2", "FR5"]
},
{
"id": "F008",
"description": "Remap per-contract renewal ticket status references using board context during migration.",
"implemented": true,
"prdRefs": ["FR2", "FR5"]
},
{
"id": "F009",
"description": "Remap saved workflow ticket status references when board context exists in the stored configuration or action payload.",
"implemented": true,
"prdRefs": ["FR2", "FR6"]
},
{
"id": "F010",
"description": "Detect and explicitly surface persisted ticket status references that cannot be remapped safely because board context is missing.",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F011",
"description": "Make ticket default status resolution board-aware everywhere new tickets are created.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F012",
"description": "Validate board and status compatibility on ticket creation paths.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F013",
"description": "Validate board and status compatibility on ticket update paths.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F014",
"description": "Require explicit destination-board status selection whenever a ticket board is changed.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F015",
"description": "Extend board creation to support seeding statuses by copying from an existing board.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F016",
"description": "Extend board creation to support creating board-local statuses inline.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F017",
"description": "Enforce board-local status rules during board create/edit, including at least one valid open default status.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F018",
"description": "Embed a board-local ticket status manager into board editing.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F019",
"description": "Retire the central ticket status settings surface as the source of truth for ticket statuses.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F020",
"description": "Scope ticket status CRUD actions and models by board for ticket status operations.",
"implemented": true,
"prdRefs": ["FR3", "FR7"]
},
{
"id": "F021",
"description": "Support board-local ticket status reorder, default, open/closed, and delete rules without affecting other boards.",
"implemented": true,
"prdRefs": ["FR3"]
},
{
"id": "F022",
"description": "Make ticket status picker components board-dependent instead of tenant-global.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F023",
"description": "Update ticket create flows so status options remain empty or disabled until a board is chosen.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F024",
"description": "Update ticket edit flows to reload valid statuses for the selected board and clear invalid status selections on board change.",
"implemented": true,
"prdRefs": ["FR4"]
},
{
"id": "F025",
"description": "Update the quick-add ticket flow to use board-scoped statuses.",
"implemented": true,
"prdRefs": ["FR4", "FR5"]
},
{
"id": "F026",
"description": "Make inbound ticket defaults choose ticket statuses from the selected board only.",
"implemented": true,
"prdRefs": ["FR5"]
},
{
"id": "F027",
"description": "Make billing renewal settings choose ticket statuses from the selected board only.",
"implemented": true,
"prdRefs": ["FR5"]
},
{
"id": "F028",
"description": "Make workflow ticket action authoring use board-aware ticket status pickers and dependencies.",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F029",
"description": "Enforce board/status compatibility in workflow runtime ticket create and update operations.",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F030",
"description": "Make workflow ticket close/default/open status resolution use board-owned ticket statuses.",
"implemented": true,
"prdRefs": ["FR6"]
},
{
"id": "F031",
"description": "Make client portal ticket create and update flows use board-scoped ticket statuses.",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F032",
"description": "Convert ticket status lookup APIs into board-scoped ticket status lookups.",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F033",
"description": "Update generic status APIs and shared status actions so ticket statuses are no longer treated as tenant-global.",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F034",
"description": "Update ticket list, search, reporting, and join-heavy ticket read paths to resolve board-owned ticket statuses correctly.",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F035",
"description": "Update SLA pause configuration and SLA ticket reporting to use board-owned ticket statuses without behavior regression.",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F036",
"description": "Update notification, survey, and other ticket event subscribers to resolve remapped board-owned ticket statuses correctly.",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F037",
"description": "Update onboarding and import flows so new ticket statuses are created as board-owned records.",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F038",
"description": "Update seeds, fixtures, and workflow harness setup to create board-owned ticket statuses.",
"implemented": true,
"prdRefs": ["FR8"]
},
{
"id": "F039",
"description": "Add DB-backed migration coverage proving status clone/remap correctness for tickets and board-context configuration.",
"implemented": true,
"prdRefs": ["FR2"]
},
{
"id": "F040",
"description": "Add UI and integration coverage for board create/edit status management and required status reselection on board change.",
"implemented": true,
"prdRefs": ["FR3", "FR4"]
},
{
"id": "F041",
"description": "Add workflow and billing regression coverage proving saved ticket-status configuration still resolves after migration remap.",
"implemented": true,
"prdRefs": ["FR5", "FR6"]
},
{
"id": "F042",
"description": "Add API and client portal regression coverage for board-scoped ticket status lookup and validation behavior.",
"implemented": true,
"prdRefs": ["FR7"]
},
{
"id": "F043",
"description": "Update any bulk ticket update surfaces to validate board-scoped status selections.",
"implemented": true,
"prdRefs": ["FR4", "FR5"]
},
{
"id": "F044",
"description": "Update auxiliary board-aware ticket creation helpers such as asset or project-linked ticket creation to use board-scoped statuses.",
"implemented": true,
"prdRefs": ["FR4", "FR5"]
}
]