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
538 lines
12 KiB
JSON
538 lines
12 KiB
JSON
[
|
|
{
|
|
"id": "T001",
|
|
"description": "AST schema accepts a valid minimal document template",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F001",
|
|
"F002"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T002",
|
|
"description": "AST schema rejects unknown node type with actionable validation error",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F001",
|
|
"F002"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T003",
|
|
"description": "AST schema enforces required binding metadata for dynamic table nodes",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F003",
|
|
"F002"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T004",
|
|
"description": "AST schema enforces transform operation payload shapes (filter/sort/group/aggregate/computed)",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F004",
|
|
"F002"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T005",
|
|
"description": "AST schema accepts optional `strategyId` on transform nodes",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F005",
|
|
"F002"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T006",
|
|
"description": "Strategy registry resolves known strategy IDs and rejects unknown IDs",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F006",
|
|
"F029"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T007",
|
|
"description": "Evaluator applies filter transforms to invoice items correctly",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007",
|
|
"F004"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T008",
|
|
"description": "Evaluator applies multi-key sort transforms deterministically",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007",
|
|
"F008"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T009",
|
|
"description": "Evaluator applies grouping transforms with expected bucket keys",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007",
|
|
"F004"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T010",
|
|
"description": "Evaluator computes aggregate totals (sum/count/avg) accurately",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007",
|
|
"F004"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T011",
|
|
"description": "Evaluator computes derived fields using declared expressions",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007",
|
|
"F004"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T012",
|
|
"description": "Evaluator executes allowlisted strategy hook for custom group key generation",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F005",
|
|
"F006",
|
|
"F007"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T013",
|
|
"description": "Evaluator reports explicit error when strategy hook throws",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F009",
|
|
"F006"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T014",
|
|
"description": "Evaluator output is byte-for-byte stable for same AST+input fixture",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F008"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T015",
|
|
"description": "Renderer produces HTML for static text/field/table/totals node combinations",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F010"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T016",
|
|
"description": "Renderer applies style declarations and class tokens consistently",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F010"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T017",
|
|
"description": "Renderer escapes unsafe text content to prevent HTML injection",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F010",
|
|
"F029"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T018",
|
|
"description": "Server render helper returns complete HTML document wrapper for headless PDF",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F011"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T019",
|
|
"description": "Designer export returns valid AST payload from current canvas state",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F012",
|
|
"F001"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T020",
|
|
"description": "Designer hydration reconstructs workspace from persisted AST",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F013"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T021",
|
|
"description": "InvoiceTemplateEditor save path no longer calls `extractInvoiceDesignerIr`",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F014",
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T022",
|
|
"description": "InvoiceTemplateEditor save path no longer calls `generateAssemblyScriptFromIr`",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F014",
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T023",
|
|
"description": "Template interfaces include AST field and compile without legacy compile-required assumptions",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F015"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T024",
|
|
"description": "Template save persists AST payload for tenant templates",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F016"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T025",
|
|
"description": "Template fetch returns AST payload for tenant templates",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F016"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T026",
|
|
"description": "Standard templates are loadable via AST definitions",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F017"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T027",
|
|
"description": "Preview action executes AST validation + evaluator + renderer pipeline",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F018",
|
|
"F002",
|
|
"F007",
|
|
"F010"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T028",
|
|
"description": "Preview action does not execute AssemblyScript compiler commands",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F018",
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T029",
|
|
"description": "Preview action no longer references Wasm executor modules",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F018",
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T030",
|
|
"description": "Preview sample source continues rendering output after pipeline swap",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F019"
|
|
],
|
|
"type": "component"
|
|
},
|
|
{
|
|
"id": "T031",
|
|
"description": "Preview existing-invoice source continues rendering output after pipeline swap",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F019"
|
|
],
|
|
"type": "component"
|
|
},
|
|
{
|
|
"id": "T032",
|
|
"description": "Preview status UI maps to shape/render/verify phases correctly",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F020"
|
|
],
|
|
"type": "component"
|
|
},
|
|
{
|
|
"id": "T033",
|
|
"description": "Preview surfaces structured AST validation errors",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F021",
|
|
"F002"
|
|
],
|
|
"type": "component"
|
|
},
|
|
{
|
|
"id": "T034",
|
|
"description": "Preview surfaces structured evaluator/strategy errors",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F021",
|
|
"F009"
|
|
],
|
|
"type": "component"
|
|
},
|
|
{
|
|
"id": "T035",
|
|
"description": "PDF generation invoice path renders via shared AST renderer helper",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F022",
|
|
"F011"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T036",
|
|
"description": "PDF generation invoice path no longer calls `executeWasmTemplate`",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F022",
|
|
"F025",
|
|
"F027"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T037",
|
|
"description": "Preview and PDF produce equivalent semantic output for same AST + invoice fixture",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F023",
|
|
"F033"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T038",
|
|
"description": "Preview cache module for compile artifacts is removed and unreferenced",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F024",
|
|
"F025"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T039",
|
|
"description": "Deleted compiler/executor files are absent from repo and import graph",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T040",
|
|
"description": "Build/test pass without AssemblyScript compile helper module",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F025"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T041",
|
|
"description": "saveInvoiceTemplate path does not invoke compileAndSaveTemplate for AST templates",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F026"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T042",
|
|
"description": "Template persistence no longer requires or writes Wasm binary for runtime rendering",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F026",
|
|
"F027"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T043",
|
|
"description": "Invoice rendering path does not call `getCompiledWasm` for AST templates",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F027",
|
|
"F022"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T044",
|
|
"description": "Compatibility behavior is defined when legacy columns exist but AST is canonical",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F028"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T045",
|
|
"description": "Runtime rejects non-allowlisted strategy IDs even if present in AST payload",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F029",
|
|
"F006"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T046",
|
|
"description": "Unit suite covers transform composition order (filter -> sort -> group -> aggregate)",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F030",
|
|
"F007"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T047",
|
|
"description": "Unit suite covers empty/edge invoice-item arrays for grouping and totals",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F030",
|
|
"F007"
|
|
],
|
|
"type": "unit"
|
|
},
|
|
{
|
|
"id": "T048",
|
|
"description": "Integration suite validates preview pipeline with sample data fixtures",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F031"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T049",
|
|
"description": "Integration suite validates preview pipeline with existing invoice query payload",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F031"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T050",
|
|
"description": "Integration suite validates PDF generation pipeline with AST template fixture",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F032"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T051",
|
|
"description": "Parity test verifies totals values match between preview and PDF paths",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F033"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T052",
|
|
"description": "Parity test verifies grouped line-item section ordering matches between preview and PDF paths",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F033",
|
|
"F004"
|
|
],
|
|
"type": "integration"
|
|
},
|
|
{
|
|
"id": "T053",
|
|
"description": "Docs describe AST model, evaluator pipeline, and allowed strategy extension mechanism",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F034"
|
|
],
|
|
"type": "docs"
|
|
},
|
|
{
|
|
"id": "T054",
|
|
"description": "Docs include deletion/removal notes for compiler/Wasm runtime architecture",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F034",
|
|
"F025"
|
|
],
|
|
"type": "docs"
|
|
},
|
|
{
|
|
"id": "T055",
|
|
"description": "End-to-end author flow passes: design edit -> AST preview -> save -> PDF render",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F012",
|
|
"F018",
|
|
"F016",
|
|
"F022"
|
|
],
|
|
"type": "e2e"
|
|
}
|
|
]
|