Project

General

Profile

Actions

Feature #3249

open
BA BA

[oms-major-bug] web: Implement OMS screens per attached design reference

Feature #3249: [oms-major-bug] web: Implement OMS screens per attached design reference

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

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

0%

Estimated time:
Source:

Description

Overview

Feature for the web side.

Requirement

"Implement the attached requirement"

Attached file (read it directly for the real content): /tmp/dev-hub-spec-XsfEF27Z3dGLANp6b-requirement.md

Additional requirement update: TEST-ONLY verification of driver.py fix — this line will be visible in the requirement text, harmless

Additional requirement update: Design reference attached.

Attached file (read it directly for the real content): /tmp/dev-hub-spec-wnwKXeXb3ihejykmF-OMS_Screens__standalone___1_.html

Explicit Constraints

  • No new visual language is to be introduced. The feature SHALL reuse the existing OMS design system, typography, colour tokens and component library. screens/UI, existing components
  • No parallel auth path is to be created. The feature SHALL reuse the existing authentication and session mechanisms. authentication/scope
  • No changes SHALL be made to the OMS order lifecycle, order data model, or any existing module behaviour. existing behavior/scope
  • Database schema changes SHALL be additive only, delivered as reversible migrations. database schema
  • Passwords SHALL never be logged, echoed in an API response, stored in plaintext, or transmitted over a non-TLS channel. security/passwords
  • The header profile icon SHALL NOT displace or overlap existing header controls at any supported viewport width. screens/UI
  • All new endpoints SHALL conform to the existing OMS API standard and error envelope (REF-06). API endpoints
  • The icon SHALL NOT be rendered on the login page or on any other unauthenticated page. screens/UI
  • The dropdown SHALL contain exactly three actionable options, in this order: (1) My Profile, (2) Reset Password, (3) Logout. No additional options SHALL be present in this release. screens/UI, dropdown menu
  • A user identifier SHALL NEVER be accepted from the request body or path for these self-service operations. API endpoints/backend
  • Plain HTTP SHALL be refused. All endpoints SHALL be served over TLS 1.2 or higher. API security
  • No endpoint SHALL return a password, password hash, or one-time code in any response body, header or log entry. API security/logging
  • Error messages SHALL NOT disclose whether a given email address or mobile number belongs to another account beyond the generic conflict message. API security/error handling
  • New Password SHALL NOT be identical to the Current Password. password logic
  • New Password SHALL NOT match any of the user's previous [PLACEHOLDER - default 3] passwords. password logic
  • The plaintext password SHALL NOT be logged or returned in any response. security/logging
  • Session termination SHALL be performed server-side. Clearing client-side storage alone SHALL NOT be considered sufficient. logout/backend
  • No feature, field, menu option, screen or capability beyond those specified SHALL be added. Where an addition appears desirable, raise it as a change request; do not implement it. scope
  • The dropdown SHALL contain exactly three options. Settings, Help, Notifications, Theme and similar additions are explicitly excluded. screens/UI, scope
  • All user-facing copy SHALL be taken verbatim from Sections 5.4 and 11. Do not paraphrase. content/copy
  • Where a requirement carries a [PLACEHOLDER], implementation of that requirement SHALL NOT begin until the placeholder is resolved. Do not substitute an assumed value silently. scope/implementation process
  • Existing OMS components, utilities, styles and API conventions SHALL be reused. Do not introduce parallel implementations of functionality that already exists. existing components/scope
  • No new third-party UI dependency introduced without written approval. screens/UI, dependencies
  • Where a requirement is found to be ambiguous, contradictory or technically infeasible, halt and raise the question. Do not resolve it by assumption. implementation process
  • Administrative management of other users' profiles is out of scope. scope
  • Role and permission management is out of scope. scope
  • Profile photograph or avatar image upload is out of scope. Initials-based icon is sufficient for this release. scope/screens/UI
  • Forgotten-password recovery from the login page is out of scope. scope
  • Multi-factor authentication enrolment and management is out of scope. scope
  • Active session listing and remote sign-out is out of scope. scope
  • Account deactivation or deletion by the user is out of scope. scope
  • Language and theme preferences are out of scope. scope
  • Editing of Username, User ID or Role is out of scope. These are administrator-controlled per BR-02. scope/screens/UI
  • Database migrations SHALL be additive and reversible, with a tested rollback path. database schema/migrations

Acceptance Criteria

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

Test Cases

(Test case checklist not available — test-gen has not run for this session; see spec-extract/test-gen in v2-graph/graph.yaml.)

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-major-bug (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 (re-dispatched ×2; first attempt 31-08-2026 16:56:13) 31-08-2026 17:06:38 31-08-2026 17:07:08 29s 6,725 2,125 -- -- 149,627 $0.2506 claude-sonnet-5
2 Extract explicit constraints 31-08-2026 17:07:08 31-08-2026 17:10:52 4m 21 9,688 -- -- 808,634 $0.8064 claude-sonnet-5
3 Probe environment 31-08-2026 17:10:52 31-08-2026 17:11:10 18s not available not available not available not available not available not available API Script
4 Execution environment — discover runners 31-08-2026 17:11:11 31-08-2026 17:14:50 4m 7,023 12,606 -- -- 1,564,537 $1.3007 claude-sonnet-5
5 Execution environment — confirm 31-08-2026 17:14:51 31-08-2026 17:15:26 35s n/a n/a n/a n/a n/a n/a n/a
6 Task Granularity 31-08-2026 17:15:30 31-08-2026 17:15:56 25s 6,725 1,892 -- -- 148,801 $0.2135 claude-sonnet-5
7 Task Granularity — human gate 31-08-2026 17:15:56 31-08-2026 17:16:07 10s n/a n/a n/a n/a n/a n/a n/a
8 Do screen inventory + field checklist? — human gate 31-08-2026 17:16:11 31-08-2026 17:16:20 9s n/a n/a n/a n/a n/a n/a n/a
9 Start Confirmation 31-08-2026 17:16:24 31-08-2026 17:18:06 2m 6,647 7,738 -- -- 89,110 $0.3165 claude-opus-5
10 Start Confirmation — human gate 31-08-2026 17:18:06 31-08-2026 17:18:20 14s n/a n/a n/a n/a n/a n/a n/a
11 Determine web connection 31-08-2026 17:18:24 31-08-2026 17:18:25 1s not available not available not available not available not available not available Script
12 Extract ticket-spec / acceptance criteria 31-08-2026 17:18:25 31-08-2026 17:19:02 36s 6,725 2,960 -- -- 151,535 $0.2356 claude-sonnet-5
13 Generate test-spec scenarios and assertions 31-08-2026 17:19:02 31-08-2026 17:19:20 18s 6,721 1,151 -- -- 50,074 $0.1328 claude-sonnet-5
14 Create/Reuse Web Redmine Ticket 31-08-2026 17:19:21 31-08-2026 17:19:23 2s not available not available not available not available not available not available API Script
15 Cross-link tickets 31-08-2026 17:19:23 31-08-2026 17:19:23 0s not available not available not available not available not available not available API Script
16 Initialise timing note 31-08-2026 17:19:23 31-08-2026 17:19:24 0s not available not available not available not available not available not available API Script
17 Analyze → Implementation Plan 31-08-2026 17:19:24 31-08-2026 17:36:23 17m 3,190 43,414 -- -- 2,032,119 $2.3592 claude-opus-5
18 Design 31-08-2026 17:36:24 31-08-2026 17:39:23 3m 2,726 13,695 -- -- 909,759 $0.9284 claude-sonnet-5
19 Schema Review 31-08-2026 17:39:24 31-08-2026 17:49:02 10m 2,803 27,655 -- -- 1,954,637 $1.5041 claude-opus-5
20 Create Branch 31-08-2026 17:49:02 31-08-2026 17:49:05 2s not available not available not available not available not available not available API Script
21 GAP — unattributed 31-08-2026 17:49:05 31-08-2026 18:06:22 17m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
22 Data Layer (re-dispatched ×2; first attempt 31-08-2026 17:49:06) 31-08-2026 18:06:22 31-08-2026 18:24:23 18m 3,167 11,021 -- -- 3,719,027 $1.8266 claude-sonnet-5
23 GAP — unattributed 31-08-2026 18:24:23 31-08-2026 18:40:02 16m 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 ×4; first attempt 31-08-2026 18:24:24) 31-08-2026 18:40:02 31-08-2026 19:02:52 23m 4,166 54,983 -- -- 11,531,530 $5.2904 claude-sonnet-5
25 GAP — unattributed 31-08-2026 19:02:52 31-08-2026 19:40:05 37m 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 31-08-2026 19:02:52) 31-08-2026 19:40:05 31-08-2026 20:20:32 40m 9,801 51,424 -- -- 18,386,794 $7.5578 claude-sonnet-5
27 2. TypeScript 31-08-2026 20:20:33 31-08-2026 20:21:07 33s 2,583 526 -- -- 199,375 $0.2268 claude-sonnet-5
28 3. Lint 31-08-2026 20:21:07 31-08-2026 20:21:13 6s not available not available not available not available not available not available Script
29 GAP — unattributed 31-08-2026 20:21:13 31-08-2026 20:39:28 18m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
30 4. Dead Code (re-dispatched ×2; first attempt 31-08-2026 20:21:14) 31-08-2026 20:39:28 31-08-2026 20:45:11 6m 2,938 22,553 -- -- 1,466,008 $1.1302 claude-opus-5
31 GAP — unattributed 31-08-2026 20:45:11 31-08-2026 22:34:09 1h 49m n/a n/a n/a n/a n/a — wait time, not compute n/a — wait time, not compute n/a
32 5. Code & Style Quality Audit (re-dispatched ×9; first attempt 31-08-2026 20:45:12) 31-08-2026 22:34:09 -- -- -- -- -- -- -- -- --
33 Human intervention (escape hatch) -- 31-08-2026 18:06:16 -- n/a n/a n/a n/a n/a n/a n/a
— ORCHESTRATOR TOTAL (rows 5–33) — — 1m 0 0 0 0 0 $0.0000 —
— SHARED TOTAL (rows 1–32) — — 2h 9m 71,961 263,431 0 0 43,161,567 $24.0797 —
— GRAND TOTAL (wall clock) 31-08-2026 17:06:38 31-08-2026 22:34:09 5h 28m 71,961 263,431 0 0 43,161,567 $24.0797 —

ORCHESTRATOR TOTAL: 1m, 0 tokens, $0.0000 (rows 5–33)
SHARED TOTAL: 2h 9m, 43,161,567 tokens, $24.0797, 7 row(s) with no token data (rows 1–32)

Total Run Time: 5h 28m (wall clock, 31-08-2026 17:06:38 → 31-08-2026 22:34:09 IST — not a sum of the per-side totals above, since sides overlap)
Active time: 2h 10m | Waiting (session limits, approvals, dead sessions): 3h 17m — 5 gap(s) still unattributed; label them with driver.py gap <slug> --from <ISO> --to <ISO> --reason '<why>'
Total Tokens Consumed: 43,161,567 (plus 7 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 71,961 · output 263,431 · 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: $24.0797 (plus 7 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