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
367 lines
9.5 KiB
JSON
367 lines
9.5 KiB
JSON
[
|
|
{
|
|
"id": "T001",
|
|
"description": "Unit: shared expression mode contract accepts only `path-only`, `template`, and `expression`.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F001"
|
|
]
|
|
},
|
|
{
|
|
"id": "T002",
|
|
"description": "Unit: shared context root model serializes/deserializes predictable root/path metadata.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F002"
|
|
]
|
|
},
|
|
{
|
|
"id": "T003",
|
|
"description": "Unit: shared path discovery flattens nested object paths in deterministic order.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F003"
|
|
]
|
|
},
|
|
{
|
|
"id": "T004",
|
|
"description": "Unit: shared path discovery includes array markers/segments according to design rules.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F003"
|
|
]
|
|
},
|
|
{
|
|
"id": "T005",
|
|
"description": "Unit: insertion helper inserts token at cursor start/middle/end in a plain input.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F004"
|
|
]
|
|
},
|
|
{
|
|
"id": "T006",
|
|
"description": "Unit: insertion helper replaces active selection range correctly in textarea/input.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F004"
|
|
]
|
|
},
|
|
{
|
|
"id": "T007",
|
|
"description": "Unit: insertion helper returns no-op when target element is readonly/disabled/unfocused.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F004"
|
|
]
|
|
},
|
|
{
|
|
"id": "T008",
|
|
"description": "Unit: shared validation result object normalizes severity/path/message fields.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F005"
|
|
]
|
|
},
|
|
{
|
|
"id": "T009",
|
|
"description": "Unit: invoice context adapter emits expected roots and canonical billing path options.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F006"
|
|
]
|
|
},
|
|
{
|
|
"id": "T010",
|
|
"description": "Unit: invoice adapter path option labels stay stable for known bindings (invoice/customer/tenant/item).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F006"
|
|
]
|
|
},
|
|
{
|
|
"id": "T011",
|
|
"description": "Unit: workflow context adapter emits payload/vars/meta/error and forEach roots when present.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007"
|
|
]
|
|
},
|
|
{
|
|
"id": "T012",
|
|
"description": "Unit: workflow adapter resolves vars paths from prior step output schema recursively.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F007"
|
|
]
|
|
},
|
|
{
|
|
"id": "T013",
|
|
"description": "Integration: invoice palette FIELDS list renders from adapter-provided options (not hardcoded catalog).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F008",
|
|
"F009"
|
|
]
|
|
},
|
|
{
|
|
"id": "T014",
|
|
"description": "Integration: invoice field search filters adapter-provided options by label/path.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F009"
|
|
]
|
|
},
|
|
{
|
|
"id": "T015",
|
|
"description": "Integration: invoice `bindingKey` insertion writes raw path token (no moustache wrapper).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F010"
|
|
]
|
|
},
|
|
{
|
|
"id": "T016",
|
|
"description": "Integration: invoice text insertion writes moustache token in template mode.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F011"
|
|
]
|
|
},
|
|
{
|
|
"id": "T017",
|
|
"description": "Integration: invoice fallback insertion path appends token to selected text node metadata when inspector target is absent.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F011"
|
|
]
|
|
},
|
|
{
|
|
"id": "T018",
|
|
"description": "Unit: invoice moustache parser compiles single token text (`{{invoice.total}}`) into AST `path` expression.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F012"
|
|
]
|
|
},
|
|
{
|
|
"id": "T019",
|
|
"description": "Unit: invoice moustache parser compiles mixed literal + tokens into AST `template` expression with args.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F012"
|
|
]
|
|
},
|
|
{
|
|
"id": "T020",
|
|
"description": "Integration: invoice imported-text preservation keeps original AST expression when preview text is unchanged.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F012",
|
|
"F013"
|
|
]
|
|
},
|
|
{
|
|
"id": "T021",
|
|
"description": "Integration: invoice exported AST remains deterministic after export->import->export with shared layer enabled.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F013"
|
|
]
|
|
},
|
|
{
|
|
"id": "T022",
|
|
"description": "Integration: invoice validation feedback appears for invalid inserted path and allows correction without crashing editor.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F014",
|
|
"F021"
|
|
]
|
|
},
|
|
{
|
|
"id": "T023",
|
|
"description": "Unit: workflow legacy `${...}` path extraction helper is removed or unused in step validation flow.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F015",
|
|
"F027"
|
|
]
|
|
},
|
|
{
|
|
"id": "T024",
|
|
"description": "Integration: workflow step expression validation panel uses shared validation results for errors and warnings.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F015",
|
|
"F016"
|
|
]
|
|
},
|
|
{
|
|
"id": "T025",
|
|
"description": "Integration: workflow validation correctly flags unknown roots and missing vars references through shared validator.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F016",
|
|
"F021"
|
|
]
|
|
},
|
|
{
|
|
"id": "T026",
|
|
"description": "Unit: workflow editor completion provider function list is filtered to runtime-allowlisted function set.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F017"
|
|
]
|
|
},
|
|
{
|
|
"id": "T027",
|
|
"description": "Unit: workflow diagnostics provider function warnings align with runtime allowlist (no hinted-but-disallowed functions).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F018"
|
|
]
|
|
},
|
|
{
|
|
"id": "T028",
|
|
"description": "Regression: workflow persisted config still stores expressions as `{ $expr: string }` with no schema change.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F019"
|
|
]
|
|
},
|
|
{
|
|
"id": "T029",
|
|
"description": "Unit: runtime expression engine still rejects disallowed functions after editor alignment changes.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F020"
|
|
]
|
|
},
|
|
{
|
|
"id": "T030",
|
|
"description": "Unit: runtime expression engine still enforces timeout and output size limits after migration.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F020"
|
|
]
|
|
},
|
|
{
|
|
"id": "T031",
|
|
"description": "Unit: shared schema-aware path check returns informational diagnostics for unresolved schema paths.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F021"
|
|
]
|
|
},
|
|
{
|
|
"id": "T032",
|
|
"description": "Integration: Monaco insertion path uses shared insertion semantics and preserves cursor position post-insert.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F022"
|
|
]
|
|
},
|
|
{
|
|
"id": "T033",
|
|
"description": "Integration: Monaco drop/insert path continues stripping trailing snippet placeholders where applicable.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F022"
|
|
]
|
|
},
|
|
{
|
|
"id": "T034",
|
|
"description": "Integration: invoice input insertion remains cursor-accurate for repeated insertions and mixed manual typing.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F023"
|
|
]
|
|
},
|
|
{
|
|
"id": "T035",
|
|
"description": "Integration: invoice text preview resolves known moustache tokens into formatted values and leaves unknown tokens visibly marked.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F024"
|
|
]
|
|
},
|
|
{
|
|
"id": "T036",
|
|
"description": "Regression: existing invoice preview mode tests for field/table/totals scaffolds remain green.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F024"
|
|
]
|
|
},
|
|
{
|
|
"id": "T037",
|
|
"description": "Regression: workflow runtime v2 unit suite remains green for expression compile/evaluate/resolve behaviors.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F025"
|
|
]
|
|
},
|
|
{
|
|
"id": "T038",
|
|
"description": "Regression: workflow runtime integration tests remain green for control flow and event-trigger expression execution paths.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F025"
|
|
]
|
|
},
|
|
{
|
|
"id": "T039",
|
|
"description": "Repo: invoice static template variable catalog file is removed and no imports remain.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F026"
|
|
]
|
|
},
|
|
{
|
|
"id": "T040",
|
|
"description": "Repo: workflow designer no longer imports or invokes legacy `${...}` scanner validation helpers.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F027"
|
|
]
|
|
},
|
|
{
|
|
"id": "T041",
|
|
"description": "Meta-test: all new/changed React UI tests in this scope run under Vitest + Testing Library and target controls via role/automation attributes (except explicit render-semantics cases).",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F028"
|
|
]
|
|
},
|
|
{
|
|
"id": "T042",
|
|
"description": "Smoke: both designers render and accept at least one inserted binding path in the same local session without runtime errors.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F008",
|
|
"F015",
|
|
"F022",
|
|
"F023"
|
|
]
|
|
},
|
|
{
|
|
"id": "T043",
|
|
"description": "Meta-test: insertion/validation tests are non-tautological by asserting resulting AST/model/diagnostic behavior, not only source-literal string echo.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F028",
|
|
"F012",
|
|
"F014",
|
|
"F016"
|
|
]
|
|
},
|
|
{
|
|
"id": "T044",
|
|
"description": "Meta-test: feature-to-test traceability check confirms every `F00x` entry has at least one mapped `featureIds` reference.",
|
|
"implemented": true,
|
|
"featureIds": [
|
|
"F028"
|
|
]
|
|
}
|
|
]
|