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

411 lines
15 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"id": "F001",
"description": "Start every new Workflow V2 run as a Temporal interpreter workflow instead of a DB-scheduled runtime execution.",
"implemented": true,
"prdRefs": ["FR-1"]
},
{
"id": "F002",
"description": "Use the same Temporal-native workflow runtime semantics in hosted EE and appliance EE.",
"implemented": true,
"prdRefs": ["FR-1"]
},
{
"id": "F003",
"description": "Allocate a stable Alga `run_id` before Temporal start and deterministically map each Temporal execution to that run ID.",
"implemented": true,
"prdRefs": ["FR-2"]
},
{
"id": "F004",
"description": "Store pinned workflow definition identity on each run, including workflow ID, published version, definition hash, and runtime semantics version.",
"implemented": true,
"prdRefs": ["FR-2", "FR-4"]
},
{
"id": "F005",
"description": "Load the pinned published definition through a runtime activity at run start and execute only that version for the life of the run.",
"implemented": true,
"prdRefs": ["FR-2", "FR-4"]
},
{
"id": "F006",
"description": "Fail fast when the pinned workflow definition cannot be loaded or does not match the expected definition hash.",
"implemented": true,
"prdRefs": ["FR-2", "FR-4"]
},
{
"id": "F007",
"description": "Implement the Temporal-native runtime as an explicit frame-based interpreter rather than DB `node_path` resume authority.",
"implemented": true,
"prdRefs": ["FR-3"]
},
{
"id": "F008",
"description": "Support root sequence-frame execution for top-level workflow steps inside the interpreter.",
"implemented": true,
"prdRefs": ["FR-3"]
},
{
"id": "F009",
"description": "Represent workflow payload scope, persistent workflow scope, local lexical scopes, and system scope separately in interpreter state.",
"implemented": true,
"prdRefs": ["FR-3", "FR-4"]
},
{
"id": "F010",
"description": "Preserve current expression ergonomics for authors while resolving expressions against the normalized Temporal-native scope model.",
"implemented": true,
"prdRefs": ["FR-3", "FR-4"]
},
{
"id": "F011",
"description": "Persist enough serializable interpreter state to resume correctly after worker restart and Temporal replay.",
"implemented": true,
"prdRefs": ["FR-3"]
},
{
"id": "F012",
"description": "Support safe continue-as-new checkpoints for long-lived runs without losing interpreter state.",
"implemented": true,
"prdRefs": ["FR-3", "Non-functional Requirements"]
},
{
"id": "F013",
"description": "Version the interpreter contract with an explicit runtime semantics version stored on each run.",
"implemented": true,
"prdRefs": ["FR-4"]
},
{
"id": "F014",
"description": "Restrict workflow-code control decisions to deterministic inputs only and prevent direct mutable DB, network, or secret reads in workflow code.",
"implemented": true,
"prdRefs": ["FR-4", "Security / Permissions"]
},
{
"id": "F015",
"description": "Execute `action.call` through a dedicated Temporal activity boundary rather than in deterministic workflow code.",
"implemented": true,
"prdRefs": ["FR-5"]
},
{
"id": "F016",
"description": "Compute deterministic action idempotency keys from stable run, step, tenant, and input context.",
"implemented": true,
"prdRefs": ["FR-5"]
},
{
"id": "F017",
"description": "Retain a durable action invocation ledger that suppresses duplicate external side effects and can return cached successful outputs.",
"implemented": true,
"prdRefs": ["FR-5", "FR-11"]
},
{
"id": "F018",
"description": "Normalize action failures into structured runtime error categories that the interpreter can use for retry, catch, and projection behavior.",
"implemented": true,
"prdRefs": ["FR-5", "FR-6"]
},
{
"id": "F019",
"description": "Keep user-authored retry policy as the semantic retry owner for action steps rather than hiding behavior inside unrestricted Temporal activity retries.",
"implemented": true,
"prdRefs": ["FR-5"]
},
{
"id": "F020",
"description": "Preserve `action.call` on-error continue/fail semantics in the Temporal-native runtime.",
"implemented": true,
"prdRefs": ["FR-5", "FR-6"]
},
{
"id": "F021",
"description": "Evaluate `control.if` conditions deterministically and route execution to `then` or `else` branches inside the interpreter.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F022",
"description": "Support `control.tryCatch` catch routing for catchable runtime failures and bind `captureErrorAs` into workflow scope.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F023",
"description": "Ensure workflow cancellation and unrecoverable interpreter corruption are not swallowed by normal `control.tryCatch` behavior.",
"implemented": true,
"prdRefs": ["FR-6", "FR-12"]
},
{
"id": "F024",
"description": "Execute `control.forEach` sequentially in the first Temporal-native release with deterministic item and index progression.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F025",
"description": "Provide lexical loop locals for `control.forEach`, including the current item and related iteration context.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F026",
"description": "Preserve `control.forEach` `onItemError` continue/fail semantics when executing sequentially.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F027",
"description": "Reject or hide `control.forEach` concurrency values greater than 1 in the first Temporal-native release.",
"implemented": true,
"prdRefs": ["FR-6", "Open Questions"]
},
{
"id": "F028",
"description": "Implement `control.return` as a successful workflow-terminal interpreter outcome.",
"implemented": true,
"prdRefs": ["FR-6"]
},
{
"id": "F029",
"description": "Execute `control.callWorkflow` as a Temporal child workflow rather than inline child execution inside the parent runtime.",
"implemented": true,
"prdRefs": ["FR-7"]
},
{
"id": "F030",
"description": "Assign deterministic child workflow and child run identifiers with root/parent linkage metadata for `control.callWorkflow`.",
"implemented": true,
"prdRefs": ["FR-7", "Data / API / Integrations"]
},
{
"id": "F031",
"description": "Map child workflow outputs back into the parent scope through the existing output-mapping semantics.",
"implemented": true,
"prdRefs": ["FR-7"]
},
{
"id": "F032",
"description": "Normalize child workflow failure into a structured parent-visible runtime error that can be retried or caught.",
"implemented": true,
"prdRefs": ["FR-7"]
},
{
"id": "F033",
"description": "Implement `time.wait` using native Temporal timers rather than DB due-wait polling.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F034",
"description": "Fast-path `time.wait` when the computed due time is already in the past or present.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F035",
"description": "Project `time.wait` lifecycle into `workflow_run_waits` for run-detail visibility without making that table the execution authority.",
"implemented": true,
"prdRefs": ["FR-8", "FR-11"]
},
{
"id": "F036",
"description": "Implement `event.wait` as a Temporal signal-backed wait instead of resolving DB wait rows directly.",
"implemented": true,
"prdRefs": ["FR-8", "FR-9"]
},
{
"id": "F037",
"description": "Evaluate and store `event.wait` event name, correlation key, filters, and timeout as part of the active wait descriptor when the wait begins.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F038",
"description": "Resume `event.wait` only when a signaled event matches the runs active wait contract, including filters and correlation key semantics.",
"implemented": true,
"prdRefs": ["FR-8", "FR-9"]
},
{
"id": "F039",
"description": "Preserve `event.wait` timeout behavior by raising a catchable timeout error when no matching signal arrives before the configured deadline.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F040",
"description": "Project `event.wait` lifecycle and routing fields into `workflow_run_waits` for UI/debugging and candidate selection.",
"implemented": true,
"prdRefs": ["FR-8", "FR-11"]
},
{
"id": "F041",
"description": "Keep `human.task` as a signal-backed wait and associate it with its task identity in the Temporal-native runtime.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F042",
"description": "Validate human-task responses before resume when runtime metadata requires form-schema or response-shape checking.",
"implemented": true,
"prdRefs": ["FR-8"]
},
{
"id": "F043",
"description": "Persist inbound workflow events to the database for audit and debugging before or during routing.",
"implemented": true,
"prdRefs": ["FR-9", "FR-11"]
},
{
"id": "F044",
"description": "Use tenant, event name, and correlation key fields from the wait projection to identify candidate waiting runs for an inbound event.",
"implemented": true,
"prdRefs": ["FR-9"]
},
{
"id": "F045",
"description": "Signal all candidate waiting runs for an inbound event instead of resuming a single first-matching DB wait row as the authority.",
"implemented": true,
"prdRefs": ["FR-9"]
},
{
"id": "F046",
"description": "Deduplicate repeated external event deliveries by `event_id` so the same event is not processed twice.",
"implemented": true,
"prdRefs": ["FR-9"]
},
{
"id": "F047",
"description": "Ignore late, duplicate, or unmatched event signals safely inside Temporal workflows without corrupting run state.",
"implemented": true,
"prdRefs": ["FR-9", "FR-12"]
},
{
"id": "F048",
"description": "Start manual and API-triggered workflow runs directly in Temporal while preserving existing run-launch concepts for the product.",
"implemented": true,
"prdRefs": ["FR-10"]
},
{
"id": "F049",
"description": "Start event-triggered workflow runs directly in Temporal from published trigger definitions and validated trigger payloads.",
"implemented": true,
"prdRefs": ["FR-10"]
},
{
"id": "F050",
"description": "Implement replay or re-run as a fresh Temporal-native execution from the pinned definition and original normalized input.",
"implemented": true,
"prdRefs": ["FR-10", "FR-12"]
},
{
"id": "F051",
"description": "Use a Temporal-native scheduling authority for one-time schedule triggers instead of DB polling.",
"implemented": true,
"prdRefs": ["FR-10", "Open Questions"]
},
{
"id": "F052",
"description": "Use Temporal Schedules or an equivalent Temporal-native recurring schedule model for recurring workflow triggers.",
"implemented": true,
"prdRefs": ["FR-10"]
},
{
"id": "F053",
"description": "Reconcile publish, unpublish, and update operations for scheduled workflows against Temporal schedule state.",
"implemented": true,
"prdRefs": ["FR-10", "Rollout / Migration"]
},
{
"id": "F054",
"description": "Convert `workflow_runs` into a Temporal-backed run summary projection with engine metadata and Temporal identifiers.",
"implemented": true,
"prdRefs": ["FR-11", "Data / API / Integrations"]
},
{
"id": "F055",
"description": "Convert `workflow_run_steps` into a step-execution timeline projection that records actual attempts, durations, and failures.",
"implemented": true,
"prdRefs": ["FR-11"]
},
{
"id": "F056",
"description": "Convert `workflow_run_waits` into a wait projection plus event-routing index rather than a scheduler truth source.",
"implemented": true,
"prdRefs": ["FR-11"]
},
{
"id": "F057",
"description": "Retain `workflow_action_invocations` as both a product-facing action timeline and the durable side-effect idempotency ledger.",
"implemented": true,
"prdRefs": ["FR-11", "FR-5"]
},
{
"id": "F058",
"description": "Retain `workflow_runtime_events` as the product-facing inbound-event audit surface for Temporal-native workflow routing.",
"implemented": true,
"prdRefs": ["FR-11"]
},
{
"id": "F059",
"description": "Reduce `workflow_run_snapshots` from execution-authority storage to optional debug-checkpoint storage if retained at all.",
"implemented": true,
"prdRefs": ["FR-11", "Open Questions"]
},
{
"id": "F060",
"description": "Keep run-list and run-detail product APIs usable by reading from the Temporal-backed projection model rather than directly from Temporal.",
"implemented": true,
"prdRefs": ["FR-11", "UX / UI Notes"]
},
{
"id": "F061",
"description": "Support run cancellation in the Temporal-native runtime and propagate cancellation appropriately to active child workflows.",
"implemented": true,
"prdRefs": ["FR-12"]
},
{
"id": "F062",
"description": "Expose operator-oriented Temporal workflow queries for current step, current wait, and interpreter summary.",
"implemented": true,
"prdRefs": ["FR-12", "Observability"]
},
{
"id": "F063",
"description": "Hard-cut all new Workflow V2 runs to the Temporal-native runtime with no DB-runtime fallback path for new executions.",
"implemented": true,
"prdRefs": ["FR-13", "Rollout / Migration"]
},
{
"id": "F064",
"description": "Retire lease-based runnable-run acquisition and due-wait polling as execution-authority mechanisms for new runs.",
"implemented": true,
"prdRefs": ["FR-13"]
},
{
"id": "F065",
"description": "Retire DB event-wait resolution as the authority for resuming runs, leaving DB rows as projection/index only.",
"implemented": true,
"prdRefs": ["FR-13", "FR-9"]
},
{
"id": "F066",
"description": "Provide a cleanup path for obsolete execution-authority columns, worker code paths, and schema assumptions left over from the DB-backed runtime.",
"implemented": true,
"prdRefs": ["FR-13", "Rollout / Migration"]
},
{
"id": "F067",
"description": "Add Temporal test-environment coverage for interpreter semantics including control flow, waits, signals, child workflows, and continue-as-new.",
"implemented": true,
"prdRefs": ["Acceptance Criteria (Definition of Done)"]
},
{
"id": "F068",
"description": "Add DB-backed integration coverage for projection correctness, idempotency behavior, trigger execution, and event-routing flows under the Temporal-native engine.",
"implemented": true,
"prdRefs": ["Acceptance Criteria (Definition of Done)"]
}
]