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

155 lines
4.5 KiB
JSON

[
{
"id": "F001",
"description": "getQboCustomers server action: realm-scoped, cached (catalog-action pattern), EE + billing_settings read gated; returns id, display name, active flag.",
"implemented": true,
"prdRefs": [
"5.1",
"6"
]
},
{
"id": "F002",
"description": "Customers mapping tab (bespoke component in the live mapping manager): per-client row with mapping state and actions link-to-existing / create-in-QBO-now / leave.",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F003",
"description": "Searchable QBO customer picker for link-to-existing, writing a realm-scoped client mapping row.",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F004",
"description": "Create-in-QBO-now runs the company-sync adapter immediately and writes the mapping row; failures surface inline.",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F005",
"description": "Name normalization + matcher: case/punctuation/whitespace/legal-suffix folding; exact = normalized equality; near matches scored as suggestions only.",
"implemented": true,
"prdRefs": [
"5.1",
"7"
]
},
{
"id": "F006",
"description": "Bulk-accept bar for exact customer matches ('Accept N exact matches'); fuzzy suggestions require per-row confirmation.",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F007",
"description": "Exporter customer resolution consults the new client mapping rows before auto-provisioning (link beats display-name auto-match).",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F008",
"description": "Wizard shell: launches after first successful OAuth connect when no completion record exists for the realm; re-runnable from QBO settings; three steps with progress state.",
"implemented": true,
"prdRefs": [
"5.2"
]
},
{
"id": "F009",
"description": "Wizard step 1 embeds the customer mapping surface.",
"implemented": true,
"prdRefs": [
"5.2"
]
},
{
"id": "F010",
"description": "Historical invoice fetch: paged QBO invoice query over a selectable date window via QboClientService.",
"implemented": true,
"prdRefs": [
"5.2",
"6"
]
},
{
"id": "F011",
"description": "Invoice candidate matcher: doc number + total + (when mapped) customer; confident matches bulk-linkable; collisions/total-mismatches to a review list, never auto-linked; 0 matches is a normal outcome.",
"implemented": true,
"prdRefs": [
"5.2",
"7"
]
},
{
"id": "F012",
"description": "Bulk link writes invoice mapping rows with sync-token + total snapshot WITHOUT exporting; linked invoices are excluded from future export selection as already-synced.",
"implemented": true,
"prdRefs": [
"5.2"
]
},
{
"id": "F013",
"description": "Payment backfill (wizard option, default on): per linked invoice, one-time QBO payment query applied through recordExternalPayment; invoices already 'paid' skipped; runs as a progress-reporting wizard batch, not in the sync cycle.",
"implemented": true,
"prdRefs": [
"5.2",
"7"
]
},
{
"id": "F014",
"description": "Wizard step 3: auto_sync_start_date tenant setting (default today) with explanation copy; completion recorded per tenant\u00d7realm; settings shows completed/last-run + re-run entry point.",
"implemented": true,
"prdRefs": [
"5.2",
"6"
]
},
{
"id": "F015",
"description": "Slice-1 finalize producer respects auto_sync_start_date: only invoices finalized on/after the cutoff auto-enqueue; earlier invoices remain manual-batch only.",
"implemented": true,
"prdRefs": [
"5.2",
"6"
]
},
{
"id": "F016",
"description": "Wizard idempotency: re-running skips already-mapped customers/invoices and already-backfilled payments (mapping-ledger checks); no duplicate mappings or payments possible.",
"implemented": true,
"prdRefs": [
"5.2"
]
},
{
"id": "F017",
"description": "Customer-unlinked exceptions (slice 1) deep-link into the Customers mapping tab.",
"implemented": true,
"prdRefs": [
"5.1"
]
},
{
"id": "F018",
"description": "i18n: wizard steps, mapping tab, match/bulk-accept copy, backfill progress in en + translated locales; pseudo-locales regenerated.",
"implemented": true,
"prdRefs": [
"5.1",
"5.2"
]
}
]