Project

General

Profile

Actions

Feature #3250

open
BA BA

[oms-bug-fixes] web: OMS UI bug fixes: chips, sorting, date field, reset password

Feature #3250: [oms-bug-fixes] web: OMS UI bug fixes: chips, sorting, date field, reset password

Added by Bot AI about 2 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
09/01/2026
Due date:
% Done:

0%

Estimated time:
Source:

Description

Overview

Feature for the web side. 28 test case(s) generated.

Requirement

"UI Bug fixes"

Attached file (read it directly for the real content): /opt/drcarrot-deploy/cross-repo-orchestration/contracts/.attachments/dev-hub-spec-twhXSJXa7BbAYdn2C-requirement-1.md

Attached file (read it directly for the real content): /opt/drcarrot-deploy/cross-repo-orchestration/contracts/.attachments/dev-hub-spec-SCNiyQbx6bXCxZBaL-OMS_Screens__standalone___2_.html

Explicit Constraints

  • Do not skip any requirement. scope/implementation
  • We do not need the Status column in the Expenses List. Remove the Status column from the Expenses List. screens/UI — Expenses List
  • Do not disable the field unless there is a specific business requirement. screens/UI — New Expense Date field
  • Do not limit this fix only to Supplier and Project. Please review all list/table screens and identify columns that should support sorting. scope — sorting implementation
  • No authenticated layout (Sidebar/Header) should remain visible after logout/session termination. screens/UI — Reset Password / authentication flow
  • Do not leave stale authentication/session state in the application. existing behavior — session/auth state
  • Fix the common/root cause wherever possible instead of creating screen-specific workarounds. scope/implementation approach
  • Do not assume that fixing one screen means the requirement is complete. Check all applicable screens. scope — coverage of fixes
  • The task should not be considered complete until every item above has been implemented and individually verified. scope/completion criteria

Acceptance Criteria

(none extracted — spec-extract has not run for this session)

Test Cases

☐ Every list screen that shows a Status column renders the status as a chip/badge element rather than plain text.
☐ Each status chip renders with the exact background color, text color, border/border-radius, padding, and typography specified in the OMS_Screens design reference for that status value.
☐ Status chip rendering is implemented as one reusable StatusChip component, and every list screen showing status imports and renders that same component rather than a screen-local copy.
☐ The Expenses List screen no longer renders a Status column at all.
☐ Status-related UI logic that is no longer needed (status filter controls, status-derived styling/sorting hooks tied to the removed column) is removed from the Expenses List implementation.
☐ The Date field on the New Expense screen is enabled/editable, not disabled.
☐ Clicking/triggering the New Expense Date field opens a working date picker.
☐ Selecting a different date in the New Expense date picker updates the Date field's value accordingly.
☐ The selected date on the New Expense screen is displayed using the correct, consistent date format.
☐ The date value selected on the New Expense screen is submitted correctly to the API when the expense is saved.
☐ On any list screen where the data set has only one row, the sort control/icon for that list's columns is hidden.
☐ On list screens with multiple rows, the sort control/icon is shown for columns that are sortable.
☐ The Supplier column supports sorting via the UI wherever it appears in a multi-row list.
☐ Sorting by the Supplier column is correctly applied via the backend/API, not only re-ordered client-side.
☐ The Project column supports sorting via the UI wherever it appears in a multi-row list.
☐ Sorting by the Project column is correctly applied via the backend/API, not only re-ordered client-side.
☐ Across all list/table screens, the sort icon appears only on columns that are genuinely sortable and never on non-sortable columns.
☐ Clicking a sortable column's control correctly toggles the list between ascending and descending order.
☐ The sort icon/UI state (direction indicator, active-column highlight) accurately reflects the list's actual applied sort state at all times.
☐ Backend/API sorting is correctly handled for every sortable column across all list/table screens, not just Supplier and Project.
☐ The Expenses Summary list no longer displays the literal text 'View Details' as its view action.
☐ The Expenses Summary view action is rendered as an icon matching the design's icon-based action style (icon choice, size, color, spacing, alignment) used on other list screens.
☐ Clicking the Expenses Summary view icon opens the correct Expense Summary details for that specific row.
☐ Submitting a password reset in the Reset Password flow completes successfully end to end.
☐ After a successful password reset, session/authentication state is handled by the reset flow's own logic rather than unconditionally triggering the generic logout flow.
☐ After a successful password reset, the user is redirected to the Login screen.
☐ After the Reset Password redirect (and after any logout/session termination generally), the Login screen renders standalone with no authenticated Sidebar/Header remaining.
☐ After the Reset Password flow completes, no stale authentication/session state (tokens, cached user, auth headers) remains anywhere in the application.

Implementation Details

Merge Request

Commits

  • fbcaca8 Contract (oms-bug-fixes)
  • 2fa4249 4. Dead Code (oms-bug-fixes)
  • 815264d UI Implementation (oms-bug-fixes)
  • 6002e6a Data Layer (oms-bug-fixes)

Verification

Quality Gates

  • 1. Unit Tests: SKIPPED — 0 passed / 0 failed, 0% coverage
  • (1. Unit Tests at SKIPPED (human override — see gate_override in approvals_index) could not be attached — see log above)
  • 2. TypeScript: PASS — 0 error(s)
    1. TypeScript attached: W11_gate_typescript-oms-bug-fixes.txt
  • 3. Lint: PASS — 0 error(s), 0 warning(s)
    1. Lint attached: W12_gate_lint-oms-bug-fixes.txt
  • 4. Dead Code: PASS
    1. Dead Code attached: W13_gate_dead-code-oms-bug-fixes.txt
  • 5. Code & Style Quality Audit: FAIL
    1. Code & Style Quality Audit attached: W14_gate_quality-audit-oms-bug-fixes.txt
  • 6. Design Consistency Audit: FAIL
    1. Design Consistency Audit attached: design-consistency-audit-3250.txt
  • 7. Responsive Audit: FAIL
    1. Responsive Audit attached: responsive-audit-3250.txt
  • Code Review: NEEDS_CHANGES
  • UI Verify: FAIL
  • UI Verify attached: ui-verify-3250.txt

UI Verification

FAIL

  • Match: 56/73 fields (76.7%)
  • Screens verified: Orders, Item List, Uom List, Supplier List, Project List, Expense List, Expense Summary, Project-1, Add Expense, Reset Password
    Business Logic Verification: FAILED
  • (Live verification evidence at /tmp/oms-web-w30-live-verify-evidence.txt (+ screenshot /tmp/lv-A-stuck-on-login.png) could not be attached — see log above)

Orchestration slug: oms-bug-fixes (side: web)


Files

BA Updated by Bot AI about 2 months ago Actions #1

  • Status changed from New to In Progress

BA Updated by Bot AI about 2 months ago · Edited Actions #2

Phase Timeline

# Process Start (IST) End (IST) Duration Input Output Cache Create Cache Read Tokens Cost Model
1 Requirement scope detection 01-09-2026 14:44:21 01-09-2026 14:44:48 26s 6,725 1,952 -- -- 155,294 $0.2687 claude-sonnet-5
2 Extract explicit constraints 01-09-2026 14:44:48 01-09-2026 14:45:11 23s 3 546 -- -- 73,806 $0.1544 claude-sonnet-5
3 Probe environment 01-09-2026 14:45:11 01-09-2026 14:45:18 6s not available not available not available not available not available not available API Script
4 Execution environment — discover runners 01-09-2026 14:45:18 01-09-2026 14:45:19 0s not available not available not available not available not available not available Script
5 Execution environment — confirm 01-09-2026 14:45:19 01-09-2026 14:45:33 13s n/a n/a n/a n/a n/a n/a n/a
6 Task Granularity 01-09-2026 14:45:38 01-09-2026 14:46:29 51s 6,725 3,815 -- -- 158,135 $0.2707 claude-sonnet-5
7 Task Granularity — human gate 01-09-2026 14:46:29 01-09-2026 14:46:44 15s n/a n/a n/a n/a n/a n/a n/a
8 Do screen inventory + field checklist? — human gate 01-09-2026 14:46:50 01-09-2026 14:46:58 8s n/a n/a n/a n/a n/a n/a n/a
9 Start Confirmation 01-09-2026 14:47:05 01-09-2026 14:48:44 2m 6,651 7,654 -- -- 176,499 $0.3549 claude-opus-5
10 Start Confirmation — human gate 01-09-2026 14:48:44 01-09-2026 14:49:02 17s n/a n/a n/a n/a n/a n/a n/a
11 Determine web connection 01-09-2026 14:49:07 01-09-2026 14:49:08 0s not available not available not available not available not available not available Script
12 Extract ticket-spec / acceptance criteria 01-09-2026 14:49:08 01-09-2026 14:50:30 1m 6,876 6,695 -- -- 779,167 $0.5285 claude-sonnet-5
13 Generate test-spec scenarios and assertions 01-09-2026 14:50:30 01-09-2026 14:52:33 2m 6,721 13,849 -- -- 64,888 $0.3364 claude-sonnet-5
14 Create/Reuse Web Redmine Ticket 01-09-2026 14:52:33 01-09-2026 14:52:36 2s not available not available not available not available not available not available API Script
15 Cross-link tickets 01-09-2026 14:52:36 01-09-2026 14:52:36 0s not available not available not available not available not available not available API Script
16 Initialise timing note 01-09-2026 14:52:36 01-09-2026 14:52:37 0s not available not available not available not available not available not available API Script
17 Analyze → Implementation Plan 01-09-2026 14:52:37 01-09-2026 15:05:27 13m 3,208 33,748 -- -- 2,905,022 $1.9453 claude-opus-5
18 Design 01-09-2026 15:05:28 01-09-2026 15:08:28 3m 2,730 12,661 -- -- 995,268 $0.7377 claude-sonnet-5
19 Schema Review 01-09-2026 15:08:29 01-09-2026 15:14:21 6m 2,783 25,051 -- -- 927,003 $1.0423 claude-opus-5
20 GAP — unattributed 01-09-2026 15:14:21 01-09-2026 15:41:31 27m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
21 Create Branch (retried ×14 — transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error; transient_api_error) (re-dispatched ×22; first attempt 01-09-2026 15:14:21) 01-09-2026 15:41:31 01-09-2026 15:41:34 3s not available not available not available not available not available not available API Script
22 Data Layer 01-09-2026 15:41:34 01-09-2026 15:58:10 17m 3,898 50,813 -- -- 10,991,634 $4.9761 claude-sonnet-5
23 GAP — unattributed 01-09-2026 15:58:10 01-09-2026 16:10:13 12m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
24 UI Implementation (re-dispatched ×2; first attempt 01-09-2026 15:58:10) 01-09-2026 16:10:13 01-09-2026 16:19:05 9m 3,308 6,434 -- -- 1,579,626 $0.8928 claude-sonnet-5
25 GAP — unattributed 01-09-2026 16:19:05 01-09-2026 16:32:28 13m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
26 1. Unit Tests (re-dispatched ×2; first attempt 01-09-2026 16:19:06) FAILED 01-09-2026 16:32:28 01-09-2026 16:36:25 4m not available not available not available not available not available not available not recorded
27 2. TypeScript 01-09-2026 16:37:04 01-09-2026 16:37:20 16s not available not available not available not available not available not available Script
28 3. Lint 01-09-2026 16:37:20 01-09-2026 16:37:29 9s not available not available not available not available not available not available Script
29 4. Dead Code 01-09-2026 16:37:30 01-09-2026 16:41:08 4m 2,916 14,997 -- -- 1,012,973 $0.9289 claude-opus-5
30 5. Code & Style Quality Audit 01-09-2026 16:41:09 01-09-2026 17:02:39 21m 2,928 48,374 -- -- 2,037,530 $2.1579 claude-opus-5
31 6. Design Consistency Audit 01-09-2026 17:02:40 01-09-2026 17:24:30 22m 12,520 48,746 -- -- 3,193,832 $2.3884 claude-opus-5
32 7. Responsive Audit 01-09-2026 17:24:31 01-09-2026 17:35:31 11m 2,934 45,979 -- -- 2,518,696 $2.2348 claude-opus-5
33 Code Review (re-dispatched ×2; first attempt 01-09-2026 17:35:32) 01-09-2026 17:37:07 01-09-2026 17:40:34 3m 2,734 14,160 -- -- 1,441,562 $1.0351 claude-sonnet-5
34 UI Verify 01-09-2026 17:40:35 01-09-2026 17:57:04 16m 3,488 43,653 -- -- 3,184,445 $2.1248 claude-opus-5
35 Web: Live verification 01-09-2026 17:57:04 01-09-2026 18:16:50 20m 3,743 48,793 -- -- 6,219,918 $3.2827 claude-sonnet-5
36 Contract 01-09-2026 18:16:50 01-09-2026 18:19:31 3m 3,008 7,839 -- -- 1,544,904 $0.8626 claude-sonnet-5
37 Git & MR 01-09-2026 18:19:32 01-09-2026 18:19:52 19s not available not available not available not available not available not available API Script
38 Trigger GitLab Local Verification 01-09-2026 18:19:53 01-09-2026 18:19:53 0s not available not available not available not available not available not available API Script
39 Poll verification jobs 01-09-2026 18:19:54 01-09-2026 18:19:54 0s not available not available not available not available not available not available API Script
40 Validate verification evidence 01-09-2026 18:19:55 01-09-2026 18:19:55 0s not available not available not available not available not available not available API Script
41 Verification approval 01-09-2026 18:19:56 01-09-2026 18:20:28 32s n/a n/a n/a n/a n/a n/a n/a
42 Completion Summary 01-09-2026 18:20:35 01-09-2026 18:20:35 0s not available not available not available not available not available not available API Script
43 Write handoff doc 01-09-2026 18:20:36 01-09-2026 18:20:36 0s not available not available not available not available not available not available Script
44 Resolve tickets + post usage summary 01-09-2026 18:20:37 01-09-2026 18:20:42 4s not available not available not available not available not available not available Script
45 Human intervention (escape hatch) -- 01-09-2026 16:10:07 -- n/a n/a n/a n/a n/a n/a n/a
46 Gate failure decision -- 01-09-2026 16:36:58 -- n/a n/a n/a n/a n/a n/a n/a
47 Join — all active sides implemented -- 01-09-2026 18:19:52 -- n/a n/a n/a n/a n/a n/a n/a
— ORCHESTRATOR TOTAL (rows 5–47) — — 1m 0 0 0 0 0 $0.0000 —
— SHARED TOTAL (rows 1–44) — — 2h 39m 83,899 435,759 0 0 39,960,202 $26.5230 —
— GRAND TOTAL (wall clock) 01-09-2026 14:44:21 01-09-2026 18:20:42 3h 36m 83,899 435,759 0 0 39,960,202 $26.5230 —

ORCHESTRATOR TOTAL: 1m, 0 tokens, $0.0000 (rows 5–47)
SHARED TOTAL: 2h 39m, 39,960,202 tokens, $26.5230, 17 row(s) with no token data (rows 1–44)

Total Run Time: 3h 36m (wall clock, 01-09-2026 14:44:21 → 01-09-2026 18:20:42 IST — not a sum of the per-side totals above, since sides overlap)
Active time: 2h 44m | Waiting (session limits, approvals, dead sessions): 53m — 3 gap(s) still unattributed; label them with driver.py gap <slug> --from <ISO> --to <ISO> --reason '<why>'
Total Tokens Consumed: 39,960,202 (plus 17 row(s) whose usage was never captured — run execution_tracker.py enrich-audit to backfill. This is a floor, not the total.)
Token breakdown: input 83,899 · output 435,759 · cache-create 0 · cache-read 0 (0% of the total). Cache-read is context a node re-sends to itself across its own tool-use turns, billed at roughly a tenth of fresh input — a large Tokens number that is mostly cache-read is a long tool loop, not a large workload.
Total Cost: $26.5230 (plus 17 row(s) whose usage was never captured — run execution_tracker.py enrich-audit to backfill. This is a floor, not the total.)

BA Updated by Bot AI about 2 months ago Actions #3

Run oms-bug-fixes — web side complete

Merge Request

Commits

  • fbcaca8 Contract (oms-bug-fixes)
  • 2fa4249 4. Dead Code (oms-bug-fixes)
  • 815264d UI Implementation (oms-bug-fixes)
  • 6002e6a Data Layer (oms-bug-fixes)

Quality Gates

  • 1. Unit Tests: SKIPPED — 0 passed / 0 failed, 0% coverage
  • (1. Unit Tests at SKIPPED (human override — see gate_override in approvals_index) could not be attached — see log above)
  • 2. TypeScript: PASS — 0 error(s)
    1. TypeScript attached: W11_gate_typescript-oms-bug-fixes.txt
  • 3. Lint: PASS — 0 error(s), 0 warning(s)
    1. Lint attached: W12_gate_lint-oms-bug-fixes.txt
  • 4. Dead Code: PASS
    1. Dead Code attached: W13_gate_dead-code-oms-bug-fixes.txt
  • 5. Code & Style Quality Audit: FAIL
    1. Code & Style Quality Audit attached: W14_gate_quality-audit-oms-bug-fixes.txt
  • 6. Design Consistency Audit: FAIL
    1. Design Consistency Audit attached: design-consistency-audit-3250.txt
  • 7. Responsive Audit: FAIL
    1. Responsive Audit attached: responsive-audit-3250.txt
  • Code Review: NEEDS_CHANGES
  • UI Verify: FAIL
  • UI Verify attached: ui-verify-3250.txt

UI Verification

FAIL

  • Match: 56/73 fields (76.7%)
  • Screens verified: Orders, Item List, Uom List, Supplier List, Project List, Expense List, Expense Summary, Project-1, Add Expense, Reset Password
    Business Logic Verification: FAILED
  • (Live verification evidence at /tmp/oms-web-w30-live-verify-evidence.txt (+ screenshot /tmp/lv-A-stuck-on-login.png) could not be attached — see log above)

BA Updated by Bot AI about 2 months ago Actions #4

Token usage summary (grouped by model):
Total known tokens: 0
Processes with no token data: 0
processesWithNoTokenData are orchestrator-internal steps with no sub-agent spawn — their token cost is real but not measurable in this environment, not zero. Do not treat totalKnownTokens as full spend.

Actions

Also available in: PDF Atom