Project

General

Profile

Actions

Feature #3252

open
BA BA

[oms-signin-flow] web: Redesign Sign In screen to match new HTML design

Feature #3252: [oms-signin-flow] web: Redesign Sign In screen to match new HTML design

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

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

0%

Estimated time:
Source:

Description

Overview

Feature for the web side. 21 acceptance criteria identified. 19 test case(s) generated.

Requirement

"Signin"

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

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

Acceptance Criteria

  • {'id': 'AC-5c205bb3', 'text': 'Existing authentication/API functionality is unchanged after the redesign — the sign-in request still uses the existing authentication logic/API contract, not new or modified logic.'}
  • {'id': 'AC-2ca4d7f2', 'text': 'Submitting valid credentials successfully authenticates the user and navigates them to the correct post-login screen.'}
  • {'id': 'AC-3cb403ed', 'text': 'Submitting invalid credentials shows an error message and keeps the user on the Sign In screen (no navigation away).'}
  • {'id': 'AC-c2f4c710', 'text': 'Required-field client-side validation (e.g. missing mobile number/password) continues to work and blocks submission.'}
  • {'id': 'AC-2e28c10a', 'text': 'Validation error messages are displayed correctly for invalid/missing input.'}
  • {'id': 'AC-76d02a80', 'text': 'A loading state is shown on the Login button/form while a sign-in request is in progress.'}
  • {'id': 'AC-07cfe3fe', 'text': 'The Login control prevents duplicate submission (e.g. disabled state) while a sign-in request is in progress.'}
  • {'id': 'AC-ef6d6425', 'text': 'API errors returned during sign-in are caught and surfaced to the user as an error state without breaking the screen.'}
  • {'id': 'AC-ddba5fdf', 'text': "The password field's visibility can be toggled (show/hide) via the eye icon shown in the HTML, if that behaviour is present in the redesigned screen."}
  • {'id': 'AC-51a4c52d', 'text': 'After a successful login, the user is navigated to the correct next screen per the existing post-login navigation behaviour.'}
  • {'id': 'AC-cf4898f9', 'text': 'When unauthenticated, only the Sign In screen is rendered/reachable — no other application UI is accessible.'}
  • {'id': 'AC-6baad6d8', 'text': 'The Sign In screen renders a two-panel split layout: a left brand/marketing panel (~45% width, full height, dark background) and a right form panel (centered, ~360px wide), matching the HTML.'}
  • {'id': 'AC-68569470', 'text': "The left panel displays the 'OMS' logo badge, 'Company Name' label, heading 'Manage your orders, expenses and suppliers in one place.', and supporting text 'A single workspace for procurement, expense tracking and supplier management.'"}
  • {'id': 'AC-76385665', 'text': "The right panel displays the heading 'Sign In' and subtext 'Sign in to continue to OMS'."}
  • {'id': 'AC-e3fb582a', 'text': "The form includes a labeled 'Mobile Number' input field as shown in the HTML."}
  • {'id': 'AC-25ac2d6d', 'text': "The form includes a labeled 'Password' input field with a masked value and a visibility-toggle icon as shown in the HTML."}
  • {'id': 'AC-75c0b6a8', 'text': "The form includes a full-width 'Login' button styled with the brand dark background and a defined hover state."}
  • {'id': 'AC-eba3cb27', 'text': "The footer text 'Need access? Contact your administrator.' is displayed below the Login button."}
  • {'id': 'AC-2bc5f3f0', 'text': 'Overall layout, spacing, typography (font sizes/weights), and colors match the values specified in the HTML design.'}
  • {'id': 'AC-aa6a0e69', 'text': 'The Sign In screen displays and functions correctly across different screen sizes (responsive behaviour).'}
  • {'id': 'AC-ce4b1895', 'text': "If the HTML's 'Mobile Number' identifier field conflicts with the credential type (e.g. email/username) the existing authentication API actually expects, the existing API contract takes priority and the discrepancy is documented as a deviation in the final implementation summary."}

Test Cases

☐ The redesigned Sign In screen submits credentials using the exact same authentication API contract (endpoint, HTTP method, payload shape, headers) as the pre-redesign screen — no new or parallel auth logic was introduced.
☐ Submitting valid Mobile Number and Password credentials successfully authenticates the user and navigates them to the correct post-login screen.
☐ Submitting invalid credentials shows an error message and keeps the user on the Sign In screen with no navigation.
☐ Client-side required-field validation blocks submission when Mobile Number and/or Password are missing.
☐ Validation error messages are displayed correctly for invalid or missing input.
☐ A loading state is shown on the Login button/form while a sign-in request is in progress.
☐ The Login control prevents duplicate submission by becoming disabled while a sign-in request is in progress.
☐ API errors returned during sign-in are caught and surfaced to the user as an error state without breaking the screen.
☐ The password field's visibility can be toggled between masked and plain text via the eye icon.
☐ When unauthenticated, only the Sign In screen is rendered/reachable — no other application UI is accessible.
☐ The Sign In screen renders a two-panel split layout: a left brand panel (~45% width, full height, dark background) and a right form panel (centered, ~360px wide), matching the HTML.
☐ The left panel displays the 'OMS' logo badge, 'Company Name' label, the heading 'Manage your orders, expenses and suppliers in one place.', and the supporting text 'A single workspace for procurement, expense tracking and supplier management.'
☐ The right panel displays the heading 'Sign In' and the subtext 'Sign in to continue to OMS'.
☐ The form includes a labeled 'Mobile Number' input field as shown in the HTML.
☐ The form includes a labeled 'Password' input field whose value is masked, with a visibility-toggle icon, as shown in the HTML.
☐ The form includes a full-width 'Login' button styled with the brand dark background and a defined hover state.
☐ The footer text 'Need access? Contact your administrator.' is displayed below the Login button.
☐ Overall layout, spacing, typography (font sizes/weights), and colors of the rendered Sign In screen match the values specified in the HTML design.
☐ The Sign In screen displays and functions correctly across different screen sizes (responsive behaviour).

Implementation Details

(populated once implementation completes — see the run's completion note on this ticket for the real commit list and MR link)

Verification

(populated once verification completes — see the run's completion note on this ticket for UI/live-verification evidence)


Orchestration slug: oms-signin-flow (side: web)

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 21:53:05 01-09-2026 21:53:15 9s 6,723 281 -- -- 99,843 $0.1795 claude-sonnet-5
2 Extract explicit constraints 01-09-2026 21:53:15 01-09-2026 21:54:02 46s 5 1,805 -- -- 157,259 $0.1973 claude-sonnet-5
3 Probe environment 01-09-2026 21:54:02 01-09-2026 21:54:07 4s not available not available not available not available not available not available API Script
4 Execution environment — discover runners 01-09-2026 21:54:07 01-09-2026 21:54:07 0s not available not available not available not available not available not available Script
5 Execution environment — confirm 01-09-2026 21:54:08 01-09-2026 21:54:16 8s n/a n/a n/a n/a n/a n/a n/a
6 Task Granularity 01-09-2026 21:54:21 01-09-2026 21:54:43 21s 6,727 1,018 -- -- 201,131 $0.2223 claude-sonnet-5
7 Task Granularity — human gate 01-09-2026 21:54:43 01-09-2026 21:54:53 10s 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 21:55:01 01-09-2026 21:55:13 11s n/a n/a n/a n/a n/a n/a n/a
9 Start Confirmation 01-09-2026 21:55:19 01-09-2026 21:59:27 4m 6,957 16,733 -- -- 1,572,162 $1.0508 claude-opus-5
10 Start Confirmation — human gate 01-09-2026 21:59:28 01-09-2026 22:00:08 40s n/a n/a n/a n/a n/a n/a n/a
11 Determine web connection 01-09-2026 22:00:15 01-09-2026 22:00:16 0s not available not available not available not available not available not available Script
12 Extract ticket-spec / acceptance criteria 01-09-2026 22:00:16 01-09-2026 22:02:36 2m 7,015 11,950 -- -- 1,056,702 $0.7060 claude-sonnet-5
13 Generate test-spec scenarios and assertions 01-09-2026 22:02:36 01-09-2026 22:04:03 1m 6,721 9,762 -- -- 60,988 $0.2753 claude-sonnet-5
14 Create/Reuse Web Redmine Ticket 01-09-2026 22:04:03 01-09-2026 22:04:05 1s not available not available not available not available not available not available API Script
15 Cross-link tickets 01-09-2026 22:04:05 01-09-2026 22:04:05 0s not available not available not available not available not available not available API Script
16 Initialise timing note 01-09-2026 22:04:05 01-09-2026 22:04:06 0s not available not available not available not available not available not available API Script
17 Analyze → Implementation Plan 01-09-2026 22:04:07 01-09-2026 22:11:31 7m 3,198 29,567 -- -- 1,737,317 $1.3817 claude-opus-5
18 Design 01-09-2026 22:11:32 01-09-2026 22:13:56 2m 2,732 11,968 -- -- 1,106,076 $0.9295 claude-sonnet-5
19 Schema Review 01-09-2026 22:13:56 01-09-2026 22:18:17 4m 2,777 19,125 -- -- 649,458 $0.8398 claude-opus-5
20 Create Branch 01-09-2026 22:18:18 01-09-2026 22:18:21 3s not available not available not available not available not available not available API Script
21 Data Layer 01-09-2026 22:18:22 01-09-2026 22:19:13 50s 2,587 3,441 -- -- 435,819 $0.4990 claude-sonnet-5
22 UI Implementation 01-09-2026 22:19:13 01-09-2026 22:32:09 13m 4,298 41,797 -- -- 7,474,477 $4.1889 claude-sonnet-5
23 1. Unit Tests 01-09-2026 22:32:09 01-09-2026 22:56:52 25m 5,390 29,875 -- -- 5,816,445 $3.0705 claude-sonnet-5
24 2. TypeScript 01-09-2026 22:56:53 01-09-2026 22:58:22 1m 2,724 4,084 -- -- 518,235 $0.4049 claude-sonnet-5
25 3. Lint 01-09-2026 22:58:22 01-09-2026 22:58:29 6s not available not available not available not available not available not available Script
26 4. Dead Code (re-dispatched ×2; first attempt 01-09-2026 22:58:30) 01-09-2026 23:00:17 01-09-2026 23:04:47 4m 2,791 11,786 -- -- 972,183 $0.6959 claude-opus-5
27 GAP — unattributed 01-09-2026 23:04:47 02-09-2026 12:18:21 13h 14m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
28 Web Redmine ticket preview — confirm 02-09-2026 12:18:21 02-09-2026 12:19:07 46s n/a n/a n/a n/a n/a n/a n/a
29 GAP — unattributed 02-09-2026 12:19:07 02-09-2026 15:31:45 3h 13m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
30 5. Code & Style Quality Audit (re-dispatched ×15; first attempt 01-09-2026 23:04:48) 02-09-2026 15:31:45 -- -- -- -- -- -- -- -- --
— ORCHESTRATOR TOTAL (rows 5–28) — — 2m 0 0 0 0 0 $0.0000 —
— SHARED TOTAL (rows 1–30) — — 1h 8m 60,645 193,192 0 0 21,858,095 $14.6415 —
— GRAND TOTAL (wall clock) 01-09-2026 21:53:05 02-09-2026 15:31:45 17h 39m 60,645 193,192 0 0 21,858,095 $14.6415 —

ORCHESTRATOR TOTAL: 2m, 0 tokens, $0.0000 (rows 5–28)
SHARED TOTAL: 1h 8m, 21,858,095 tokens, $14.6415, 8 row(s) with no token data (rows 1–30)

Total Run Time: 17h 39m (wall clock, 01-09-2026 21:53:05 → 02-09-2026 15:31:45 IST — not a sum of the per-side totals above, since sides overlap)
Active time: 1h 12m | Waiting (session limits, approvals, dead sessions): 16h 26m — 2 gap(s) still unattributed; label them with driver.py gap <slug> --from <ISO> --to <ISO> --reason '<why>'
Total Tokens Consumed: 21,858,095 (plus 8 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 60,645 · output 193,192 · 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: $14.6415 (plus 8 row(s) whose usage was never captured — run execution_tracker.py enrich-audit to backfill. This is a floor, not the total.)

Actions

Also available in: PDF Atom