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
153 lines
6.5 KiB
JSON
153 lines
6.5 KiB
JSON
[
|
|
{
|
|
"id": "F001",
|
|
"description": "Document and codify the grouped automatic-invoices model: parent rows group by `client + invoice window`, child rows remain the atomic execution units.",
|
|
"implemented": true,
|
|
"prdRefs": ["Summary", "Product Decisions"]
|
|
},
|
|
{
|
|
"id": "F002",
|
|
"description": "Refactor the automatic-invoices ready-work view model so each group carries explicit parent summary data separate from child execution rows.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F003",
|
|
"description": "Add stable parent-group identity and grouped selection keys for parent rows, distinct from child selector inputs.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F004",
|
|
"description": "Replace the flat automatic-invoices ready table with an expandable parent/child grouped UI.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F005",
|
|
"description": "Render parent-row summaries including client name, invoice window, child count, aggregate amount, and combinability state.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F006",
|
|
"description": "Render child-row detail with contract or assignment identity, cadence source, billing timing, service period, and amount.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F007",
|
|
"description": "Compute parent combinability from effective invoice-level financial scope: client, currency, PO scope, tax source, and export shape.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F008",
|
|
"description": "Enable the parent checkbox only when the currently eligible children are combinable as one invoice.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F009",
|
|
"description": "Support child-level selection regardless of parent combinability, including tri-state parent behavior for partial selection.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F010",
|
|
"description": "Implement smart `Select All` semantics that select parents for combinable groups and child rows individually for non-combinable groups.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F011",
|
|
"description": "Keep blocked child candidates visible inside groups while preventing their selection and reflecting their status in the parent summary.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F012",
|
|
"description": "Expose explicit incompatibility reasons on non-combinable parent rows, including PO, currency, tax, and export-shape differences.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F013",
|
|
"description": "Add grouped preview request semantics so the preview stack can accept parent selections and exact child selections rather than only one selector input.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F014",
|
|
"description": "Render preview output that clearly states whether the current selection will produce one invoice or several, with grouped or split preview presentation as appropriate.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F015",
|
|
"description": "Add grouped generation request semantics so parent selections and arbitrary child selections execute exactly the selected scope.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F016",
|
|
"description": "Implement exact-scope grouped execution so selected parent or child rows never re-expand into unselected sibling candidates.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements"]
|
|
},
|
|
{
|
|
"id": "F017",
|
|
"description": "Support true combined invoice generation for compatible grouped selections spanning multiple child candidates.",
|
|
"implemented": true,
|
|
"prdRefs": ["Goals", "Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F018",
|
|
"description": "Preserve fan-out generation for incompatible grouped selections so the same grouped UI can still produce multiple invoices safely.",
|
|
"implemented": true,
|
|
"prdRefs": ["Goals", "Requirements"]
|
|
},
|
|
{
|
|
"id": "F019",
|
|
"description": "Redesign duplicate-prevention and idempotency logic so grouped parent selections and multi-child executions are safe against re-invoicing.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F020",
|
|
"description": "Redesign invoice persistence so a combined multi-assignment invoice does not require a fake single `client_contract_id` invoice owner.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Data / API / Integrations", "Rollout / Migration"]
|
|
},
|
|
{
|
|
"id": "F021",
|
|
"description": "Make charge-level assignment attribution authoritative for combined invoices and preserve that attribution through billing persistence.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F022",
|
|
"description": "Update invoice reads, history, and billing query surfaces so combined invoices remain explainable and queryable without relying on invoice-header assignment ownership alone.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F023",
|
|
"description": "Keep purchase-order enforcement safe by disabling combined execution when selected children do not share compatible PO scope and by preserving correct PO behavior for valid combinations.",
|
|
"implemented": true,
|
|
"prdRefs": ["Product Decisions", "Requirements", "Data / API / Integrations"]
|
|
},
|
|
{
|
|
"id": "F024",
|
|
"description": "Preserve existing single-assignment and single-child recurring invoice behavior so the grouped model is additive rather than regressive.",
|
|
"implemented": true,
|
|
"prdRefs": ["Requirements", "Acceptance Criteria"]
|
|
},
|
|
{
|
|
"id": "F025",
|
|
"description": "Update billing docs, runbooks, and in-product explanatory copy to describe grouped selection, combinability, and smart `Select All` semantics.",
|
|
"implemented": true,
|
|
"prdRefs": ["UX / UI Notes", "Rollout / Migration", "Acceptance Criteria"]
|
|
}
|
|
]
|