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
207 lines
7.3 KiB
JSON
207 lines
7.3 KiB
JSON
[
|
|
{
|
|
"id": "T001",
|
|
"description": "Component: The approval entry detail panel renders a dedicated input for entry-level change suggestions.",
|
|
"implemented": true,
|
|
"featureIds": ["F001"]
|
|
},
|
|
{
|
|
"id": "T002",
|
|
"description": "Component: Requesting changes from an entry panel submits the entry id and entry-specific suggestion together.",
|
|
"implemented": true,
|
|
"featureIds": ["F001", "F002"]
|
|
},
|
|
{
|
|
"id": "T003",
|
|
"description": "Integration: Approver request-changes happy path creates an entry feedback record and updates the entry approval status to CHANGES_REQUESTED.",
|
|
"implemented": true,
|
|
"featureIds": ["F002", "F003", "F004"]
|
|
},
|
|
{
|
|
"id": "T004",
|
|
"description": "DB integration: Creating entry-level feedback persists author, timestamps, and unresolved handled metadata in the migrated schema.",
|
|
"implemented": true,
|
|
"featureIds": ["F003", "F004"]
|
|
},
|
|
{
|
|
"id": "T005",
|
|
"description": "Permission/guard: A user without timesheet approval permission cannot create entry-level feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F018"]
|
|
},
|
|
{
|
|
"id": "T006",
|
|
"description": "DB integration: Multiple request-change cycles on the same entry preserve older feedback records instead of overwriting them.",
|
|
"implemented": true,
|
|
"featureIds": ["F005", "F016"]
|
|
},
|
|
{
|
|
"id": "T007",
|
|
"description": "Selector/unit: The employee feedback presenter chooses the most recent relevant feedback as the prominent inline message.",
|
|
"implemented": true,
|
|
"featureIds": ["F006"]
|
|
},
|
|
{
|
|
"id": "T008",
|
|
"description": "Component: The time entry editor shows the prominent latest feedback banner when an entry has feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F006"]
|
|
},
|
|
{
|
|
"id": "T009",
|
|
"description": "Component: The time entry editor hides the prominent feedback banner when an entry has no feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F020"]
|
|
},
|
|
{
|
|
"id": "T010",
|
|
"description": "Component: The time entry editor renders an expandable feedback history section for entries with multiple feedback records.",
|
|
"implemented": true,
|
|
"featureIds": ["F007"]
|
|
},
|
|
{
|
|
"id": "T011",
|
|
"description": "Component: Expanding feedback history shows older handled and unresolved comments in chronological order.",
|
|
"implemented": true,
|
|
"featureIds": ["F005", "F007"]
|
|
},
|
|
{
|
|
"id": "T012",
|
|
"description": "Integration: Timesheet employee data loading returns per-entry feedback information alongside entry data for downstream views.",
|
|
"implemented": true,
|
|
"featureIds": ["F008"]
|
|
},
|
|
{
|
|
"id": "T013",
|
|
"description": "Component: The timesheet list view shows the unresolved-feedback marker for entries with an open change suggestion.",
|
|
"implemented": true,
|
|
"featureIds": ["F009"]
|
|
},
|
|
{
|
|
"id": "T014",
|
|
"description": "Component: The timesheet list view shows the handled-feedback marker for entries whose latest change suggestion was addressed.",
|
|
"implemented": true,
|
|
"featureIds": ["F010"]
|
|
},
|
|
{
|
|
"id": "T015",
|
|
"description": "Component: The timesheet list view shows no marker for entries without entry-level feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F020"]
|
|
},
|
|
{
|
|
"id": "T016",
|
|
"description": "Component: The timesheet grid view shows an X icon on entry blocks with unresolved change suggestions.",
|
|
"implemented": true,
|
|
"featureIds": ["F011"]
|
|
},
|
|
{
|
|
"id": "T017",
|
|
"description": "Component: The timesheet grid view shows a check icon on entry blocks whose latest change suggestion was handled.",
|
|
"implemented": true,
|
|
"featureIds": ["F012"]
|
|
},
|
|
{
|
|
"id": "T018",
|
|
"description": "Component: The timesheet grid view shows no feedback icon for entry blocks without entry-level feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F020"]
|
|
},
|
|
{
|
|
"id": "T019",
|
|
"description": "Interaction contract: List-view feedback markers do not override existing row click behavior for editing entries.",
|
|
"implemented": true,
|
|
"featureIds": ["F013"]
|
|
},
|
|
{
|
|
"id": "T020",
|
|
"description": "Interaction contract: Grid-view feedback markers do not override existing cell click behavior for editing entries.",
|
|
"implemented": true,
|
|
"featureIds": ["F013"]
|
|
},
|
|
{
|
|
"id": "T021",
|
|
"description": "Integration: Saving an edited entry during CHANGES_REQUESTED auto-marks the latest unresolved feedback for that same entry as handled.",
|
|
"implemented": true,
|
|
"featureIds": ["F014"]
|
|
},
|
|
{
|
|
"id": "T022",
|
|
"description": "DB integration: Auto-handle writes handled metadata to the latest unresolved feedback record for the edited entry.",
|
|
"implemented": true,
|
|
"featureIds": ["F004", "F014"]
|
|
},
|
|
{
|
|
"id": "T023",
|
|
"description": "Guard: Editing an unrelated entry does not mark feedback handled for a different entry.",
|
|
"implemented": true,
|
|
"featureIds": ["F015"]
|
|
},
|
|
{
|
|
"id": "T024",
|
|
"description": "Guard: Saving an entry outside the change-requested flow does not incorrectly mark historical feedback handled.",
|
|
"implemented": true,
|
|
"featureIds": ["F014", "F015"]
|
|
},
|
|
{
|
|
"id": "T025",
|
|
"description": "Integration: A second approver change request on a previously handled entry creates a new unresolved feedback record.",
|
|
"implemented": true,
|
|
"featureIds": ["F016"]
|
|
},
|
|
{
|
|
"id": "T026",
|
|
"description": "Integration: The employee-facing prominent feedback updates to the new latest request after a second review cycle.",
|
|
"implemented": true,
|
|
"featureIds": ["F006", "F016"]
|
|
},
|
|
{
|
|
"id": "T027",
|
|
"description": "Regression: Timesheet-level comments continue to render and post independently from entry-level feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F017"]
|
|
},
|
|
{
|
|
"id": "T028",
|
|
"description": "Regression: Requesting entry-level changes does not remove or merge existing timesheet-level comments.",
|
|
"implemented": true,
|
|
"featureIds": ["F003", "F017"]
|
|
},
|
|
{
|
|
"id": "T029",
|
|
"description": "Permission/guard: Employees cannot create entry-level approver feedback through normal time-entry save flows.",
|
|
"implemented": true,
|
|
"featureIds": ["F018"]
|
|
},
|
|
{
|
|
"id": "T030",
|
|
"description": "Permission/guard: Authorized employee and delegated editor views can read only feedback for entries they are already permitted to access.",
|
|
"implemented": true,
|
|
"featureIds": ["F019"]
|
|
},
|
|
{
|
|
"id": "T031",
|
|
"description": "DB integration: Fetching feedback for one tenant or timesheet does not leak feedback records from another tenant or sheet.",
|
|
"implemented": true,
|
|
"featureIds": ["F018", "F019"]
|
|
},
|
|
{
|
|
"id": "T032",
|
|
"description": "Regression: Approval drawer and employee timesheet views render unchanged for entries and timesheets that have no per-entry feedback.",
|
|
"implemented": true,
|
|
"featureIds": ["F020"]
|
|
},
|
|
{
|
|
"id": "T033",
|
|
"description": "Regression: Existing per-entry approval status actions still work when no change suggestion is attached.",
|
|
"implemented": true,
|
|
"featureIds": ["F002", "F020"]
|
|
},
|
|
{
|
|
"id": "T034",
|
|
"description": "End-to-end sanity: An approver requests changes on one entry, the employee sees the marker and inline note, edits the entry, and the marker changes to handled.",
|
|
"implemented": true,
|
|
"featureIds": ["F002", "F006", "F009", "F011", "F014"]
|
|
}
|
|
]
|