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

186 lines
5.4 KiB
JSON

[
{
"id": "T001",
"description": "Registry/catalog unit test: after registering scheduling actions, find_entry, search_entries, reschedule, reassign, cancel, complete, and existing assign_user are present and grouped under Scheduling.",
"implemented": true,
"featureIds": [
"F001",
"F004",
"F007",
"F015",
"F021",
"F024",
"F029"
]
},
{
"id": "T002",
"description": "Schema unit test: each new scheduling action validates representative valid input and rejects blank entry references, invalid ISO dates, invalid recurrence scope, invalid user UUIDs, and empty required arrays while allowing virtual recurring entry references.",
"implemented": true,
"featureIds": [
"F001",
"F004",
"F008",
"F015",
"F021",
"F024",
"F028",
"F032"
]
},
{
"id": "T003",
"description": "DB-backed read integration: find_entry and search_entries return tenant-scoped entries with assigned_user_ids and do not leak entries from another tenant.",
"implemented": true,
"featureIds": [
"F002",
"F005",
"F006"
]
},
{
"id": "T004",
"description": "DB-backed read guard: actor without user_schedule:read receives PERMISSION_DENIED for find_entry/search_entries.",
"implemented": true,
"featureIds": [
"F006",
"F028"
]
},
{
"id": "T005",
"description": "DB-backed reschedule happy path: action updates scheduled_start/scheduled_end, writes audit, returns previous/new times, and publishes APPOINTMENT_RESCHEDULED for a ticket-linked appointment.",
"implemented": true,
"featureIds": [
"F007",
"F008",
"F013",
"F014",
"F027"
]
},
{
"id": "T006",
"description": "DB-backed reschedule conflict guard: overlapping assignment with conflict_mode=fail rejects with CONFLICT and leaves the target entry unchanged.",
"implemented": true,
"featureIds": [
"F009",
"F010",
"F028"
]
},
{
"id": "T007",
"description": "DB-backed reschedule conflict modes: shift moves the appointment after the latest conflict, while override preserves requested time and creates schedule_conflicts rows.",
"implemented": true,
"featureIds": [
"F009",
"F011",
"F012"
]
},
{
"id": "T008",
"description": "DB-backed reassign happy path: action replaces assignees, validates Technician eligibility, writes audit, returns previous/new assignees, and publishes APPOINTMENT_ASSIGNED according to final event policy.",
"implemented": true,
"featureIds": [
"F015",
"F016",
"F017",
"F020",
"F027"
]
},
{
"id": "T009",
"description": "DB-backed reassign no-op and guard cases: unchanged assignments return changed=false without event emission, and ineligible/missing users return a standard workflow action error.",
"implemented": true,
"featureIds": [
"F016",
"F018",
"F020",
"F028"
]
},
{
"id": "T010",
"description": "DB-backed cancel happy path: action marks the entry canceled without deleting it, stores reason/note in the chosen place, writes audit, and publishes APPOINTMENT_CANCELED.",
"implemented": true,
"featureIds": [
"F021",
"F022",
"F023",
"F027"
]
},
{
"id": "T011",
"description": "DB-backed complete happy path: action marks the entry completed, records optional outcome/note, writes audit, and publishes APPOINTMENT_COMPLETED.",
"implemented": true,
"featureIds": [
"F024",
"F025",
"F026",
"F027"
]
},
{
"id": "T012",
"description": "DB-backed recurrence sanity: reschedule/cancel/reassign on a virtual recurring occurrence with recurrence_scope=single affects only that occurrence and leaves other generated occurrences available.",
"implemented": true,
"featureIds": [
"F013",
"F019",
"F022"
]
},
{
"id": "T013",
"description": "Permission integration: write actions reject actors without the confirmed user_schedule write permission and do not mutate schedule_entries or schedule_entry_assignees.",
"implemented": true,
"featureIds": [
"F007",
"F015",
"F021",
"F024",
"F028"
]
},
{
"id": "T014",
"description": "Existing recurrence regression: targeted scheduling recurrence integration tests still pass after workflow actions use recurrence update semantics.",
"implemented": true,
"featureIds": [
"F013",
"F019",
"F022",
"F025"
]
},
{
"id": "T015",
"description": "Plan maintenance check: final implementation updates SCRATCHPAD.md with decisions for all open questions and flips completed features/tests to implemented=true.",
"implemented": true,
"featureIds": [
"F030"
]
},
{
"id": "T016",
"description": "Runtime node smoke: action.call can execute a representative scheduling action, saveAs its output into vars, and use it in a downstream expression assignment.",
"implemented": true,
"featureIds": [
"F029",
"F032"
]
},
{
"id": "T017",
"description": "Shared helper guard: workflow action actor resolution uses the run tenant when joining tenant-owned workflow_definitions and does not resolve an actor from another tenant.",
"implemented": true,
"featureIds": [
"F031"
]
}
]