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

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"
]
}
]