generated from john/python-template
UI slog grinds on
This commit is contained in:
@@ -81,7 +81,7 @@ This checklist does not cover:
|
||||
### RD-4 Detail execution context visibility
|
||||
1. provider, model, and prompt_name are displayed when known
|
||||
2. status lifecycle value is visible
|
||||
3. source-level transcription and revision context remains deferred in the current UI
|
||||
3. source-level transcription and revision context is available through Source detail navigation from Job detail
|
||||
|
||||
### RD-5 Missing and invalid id states
|
||||
1. Given an invalid job id format
|
||||
@@ -94,16 +94,17 @@ This checklist does not cover:
|
||||
### UP-1 Revision edit entry
|
||||
1. Given a job detail page
|
||||
2. When the user opens the page
|
||||
3. Then document-scoped navigation links are available
|
||||
3. Then navigation links to job-scoped Sources are available
|
||||
4. Then source rows can open Source detail revision workflow
|
||||
|
||||
### UP-2 Revision validation
|
||||
1. source revision editing remains deferred in the current UI
|
||||
1. revision save blocks empty trimmed text and shows warning feedback
|
||||
|
||||
### UP-3 Successful revision save
|
||||
1. deferred until the source revision UI is restored
|
||||
1. Source detail save persists revised text and shows success feedback
|
||||
|
||||
### UP-4 Revision save failure
|
||||
1. deferred until the source revision UI is restored
|
||||
1. Source detail save failure shows clear error feedback with retry path
|
||||
|
||||
### UP-5 Job lifecycle state update visibility
|
||||
1. status changes from queued to processing to terminal states are reflected in UI
|
||||
@@ -113,19 +114,28 @@ This checklist does not cover:
|
||||
## Delete Acceptance Criteria
|
||||
|
||||
### DL-1 Delete entry and confirmation
|
||||
1. job deletion is deferred in the current UI
|
||||
1. Given a job detail context
|
||||
2. When the user opens job delete page
|
||||
3. Then a permanent-action confirmation is shown for non-processing jobs
|
||||
|
||||
### DL-2 Dependency guardrails
|
||||
1. deferred until a job delete flow is reintroduced
|
||||
1. Delete is blocked while job status is processing
|
||||
2. Related JobSource links are removed as part of allowed delete flow
|
||||
|
||||
### DL-3 Blocked delete behavior
|
||||
1. deferred until a job delete flow is reintroduced
|
||||
1. When blocked, the UI shows clear processing-state guidance
|
||||
2. The user is offered navigation back to job or jobs list
|
||||
|
||||
### DL-4 Successful delete
|
||||
1. deferred until a job delete flow is reintroduced
|
||||
1. Given an allowed delete
|
||||
2. When the user confirms delete
|
||||
3. Then the job is removed and success feedback is shown
|
||||
4. Then the user is returned to Jobs list
|
||||
|
||||
### DL-5 Delete failure
|
||||
1. deferred until a job delete flow is reintroduced
|
||||
1. Given backend failure during delete
|
||||
2. Then clear error feedback is shown
|
||||
3. Then the user remains in delete context with retry path
|
||||
|
||||
## Cross-Criteria Quality Gates
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ This document uses three lenses:
|
||||
| prompt_name | str | Yes | None | Visible when known; editable if create-time options are available | Prompt metadata |
|
||||
|
||||
Related execution fields rendered in Job detail via relationships:
|
||||
- none in the current simplified detail view beyond job metadata and document navigation links
|
||||
- Job detail renders metadata and document links; source-level review/editing is reached through job-scoped Sources routes.
|
||||
|
||||
## 4. CREATE Mapping
|
||||
|
||||
@@ -72,7 +72,7 @@ Current backend path: job create submit -> create_job_for_document()
|
||||
| Field | Current Value at Create | Source | Visible to User | Evidence |
|
||||
|---|---|---|---|---|
|
||||
| id | Generated UUID | System | Yes on jobs list/detail | src/transcription/ui/pages/jobs_page.py |
|
||||
| document_id | Newly created Document id | Service | Indirectly | src/transcription/services/store.py |
|
||||
| document_id | Selected existing Document id | User selection + service write | Indirectly | src/transcription/ui/pages/jobs_page.py, src/transcription/services/store.py |
|
||||
| status | queued | Service/model default | Yes | src/transcription/services/store.py, src/transcription/db/models.py |
|
||||
| retry_count | 0 | Model default | Yes | src/transcription/db/models.py, src/transcription/ui/pages/jobs_page.py |
|
||||
| date_created | current UTC timestamp | System | Yes | src/transcription/db/models.py, src/transcription/ui/pages/jobs_page.py |
|
||||
@@ -118,27 +118,27 @@ Current read behavior exists in jobs list and jobs detail routes.
|
||||
| date_created | Jobs list table | Yes | Included in row model | src/transcription/ui/components/table/jobs.py |
|
||||
| date_updated | Jobs list table | Yes | Included in row model | src/transcription/ui/components/table/jobs.py |
|
||||
| document_id | Not rendered directly as labeled field | Partial | Document context exists by relationship but limited direct display | src/transcription/ui/pages/jobs_page.py |
|
||||
| provider/model/prompt_name | Not rendered as first-class labels | Partial | Stored in job records after processing updates | src/transcription/services/workflows.py |
|
||||
| provider/model/prompt_name | Rendered as labeled fields in Job detail | Yes | Shows pending fallback when unset | src/transcription/ui/pages/jobs_page.py |
|
||||
|
||||
Source-related read behavior:
|
||||
1. one primary source preview is shown in detail.
|
||||
2. original transcription and revision editor are rendered for source context.
|
||||
1. Job detail exposes Sources navigation for current job context.
|
||||
2. Source preview, transcription context, and revision editor are rendered in Source detail.
|
||||
3. invalid or missing job ids show explicit UI states.
|
||||
|
||||
### 5.3 Gap to Target
|
||||
|
||||
To satisfy intended Read flow, implementation must add:
|
||||
1. richer per-source detail navigation if a later revision restores transcription review in Job detail.
|
||||
1. optional in-page source summaries in Job detail if future UX requires fewer navigation steps.
|
||||
2. richer filtering/search UX if needed.
|
||||
|
||||
## 6. UPDATE Mapping
|
||||
|
||||
### 6.1 Intended Update Behavior
|
||||
|
||||
Primary user updates in first release are source revision edits in job detail source context in the product plan, but the current UI no longer exposes that surface.
|
||||
Primary user updates in first release are source revision edits in Source detail reached from Job detail.
|
||||
|
||||
Intended editable scope (first release):
|
||||
- Source.revised_text through Job detail review
|
||||
- Source.revised_text through Source detail review
|
||||
|
||||
Intended read-only Job fields in first release:
|
||||
- id
|
||||
@@ -156,7 +156,7 @@ Job metadata visibility policy:
|
||||
|
||||
| Field/Area | Updatable via UI | Updatable via Service | Notes |
|
||||
|---|---|---|---|
|
||||
| Source.revised_text from job detail | No | Yes | Saved via transcription service revision path, but the current UI does not expose the editor |
|
||||
| Source.revised_text from Source detail | Yes | Yes | Saved via transcription service revision path from Sources page detail route |
|
||||
| status | No | Yes | Updated by workflow lifecycle services |
|
||||
| retry_count | No | Yes | Incremented by workflow retry logic |
|
||||
| provider/model/prompt_name | No | Yes | Set during transcription result finalization |
|
||||
@@ -167,13 +167,14 @@ Job metadata visibility policy:
|
||||
Implementation now includes:
|
||||
1. create-mode handling for provider/model/prompt visibility and optional selection.
|
||||
2. detail display for provider/model/prompt and document-scoped navigation links.
|
||||
3. manual controls for retry and state transitions remain deferred.
|
||||
3. source revision workflow through job-scoped Sources and Source detail pages.
|
||||
4. manual controls for retry and state transitions remain deferred.
|
||||
|
||||
## 7. DELETE Mapping
|
||||
|
||||
### 7.1 Intended Delete Behavior
|
||||
|
||||
Job deletion is deferred in the current UI.
|
||||
Job deletion is implemented as a dedicated delete route with processing-state guardrails.
|
||||
|
||||
Rules:
|
||||
1. deletion is allowed only when policy allows cleanup or retention handling for related JobSource records.
|
||||
@@ -184,14 +185,13 @@ Rules:
|
||||
|
||||
| Action | UI Exposed | Backend Capability | Notes |
|
||||
|---|---|---|---|
|
||||
| Delete Job | No | Yes | JobService.delete_job() exists; no dedicated UI delete flow |
|
||||
| Delete Job | Yes | Yes | Job delete page confirms permanent action and blocks when processing |
|
||||
|
||||
### 7.3 Gap to Target
|
||||
|
||||
Implementation should add in a future revision:
|
||||
1. delete control in Job detail.
|
||||
2. dependency checks and blocked-delete messaging.
|
||||
3. success navigation and confirmation UX.
|
||||
Implementation may add in a future revision:
|
||||
1. inline delete entry in Job detail header.
|
||||
2. richer dependency messaging beyond processing-state guardrail.
|
||||
|
||||
## 8. Hidden and System-Managed Fields
|
||||
|
||||
@@ -211,10 +211,11 @@ Schema and models:
|
||||
Current implementation:
|
||||
- src/transcription/ui/pages/jobs_page.py
|
||||
- src/transcription/ui/components/table/jobs.py
|
||||
- src/transcription/ui/components/transcript.py
|
||||
- src/transcription/ui/pages/sources_page.py
|
||||
- src/transcription/services/jobs.py
|
||||
- src/transcription/services/workflows.py
|
||||
- src/transcription/services/store.py
|
||||
- src/transcription/services/transcription.py
|
||||
|
||||
Companion UX spec:
|
||||
- docs/ui/entities/job/user-journey.md
|
||||
@@ -226,7 +227,7 @@ Acceptance checklist:
|
||||
|
||||
- Every Job schema field appears in the field inventory.
|
||||
- Intended Create behavior matches the companion user journey.
|
||||
- Current behavior reflects existing upload-first creation and jobs read surfaces.
|
||||
- Current behavior reflects explicit jobs creation plus source review/editing through dedicated Sources routes.
|
||||
- Provider/model/prompt visibility intent is explicit for create and detail views.
|
||||
- Gaps between intended and current behavior are explicit.
|
||||
- Read, Update, and Delete sections distinguish target behavior from current code.
|
||||
|
||||
@@ -65,9 +65,9 @@ Primary entry points:
|
||||
2. from Jobs page row selection, open existing Job detail
|
||||
|
||||
Current implementation note:
|
||||
1. current code path is upload-first and auto-creates Job records
|
||||
1. current code path uses explicit /jobs/new creation
|
||||
2. intended UX is explicit Create job from the Jobs page
|
||||
3. current detail view is link-oriented and does not show per-source transcription or revision editing controls
|
||||
3. current detail view is link-oriented and routes source review/editing through dedicated Source detail
|
||||
|
||||
## 5. Create Job Flow
|
||||
|
||||
@@ -167,9 +167,13 @@ Optional first-release columns if available:
|
||||
The Job detail should show:
|
||||
1. job status and summary metadata
|
||||
2. selected Document context
|
||||
3. per-source status (pending, transcribed, failed)
|
||||
4. original transcription output per source
|
||||
5. revision editor and latest revised content
|
||||
3. document-scoped and job-scoped navigation links
|
||||
4. source review entry through job-scoped Sources list
|
||||
|
||||
Source detail should show:
|
||||
1. source metadata and preview
|
||||
2. original transcription output per source
|
||||
3. revision editor and latest revised content
|
||||
|
||||
### 6.4 Read Empty and Missing States
|
||||
|
||||
@@ -228,7 +232,7 @@ The user primarily updates job-related review outcomes by editing revised transc
|
||||
### 8.2 First-Release Editable Scope
|
||||
|
||||
Editable in first release:
|
||||
1. source-level revised_text through job detail review
|
||||
1. source-level revised_text through Source detail reached from job-scoped Sources navigation
|
||||
|
||||
Read-only in first release:
|
||||
1. Job.document_id after create
|
||||
@@ -256,10 +260,10 @@ The user may need to remove invalid or duplicate jobs safely.
|
||||
|
||||
### 9.2 First-Release Policy
|
||||
|
||||
Delete behavior is policy-controlled:
|
||||
1. deletion may be blocked when related JobSource or source history must be retained
|
||||
2. blocked delete must explain constraints and cleanup path
|
||||
3. if allowed, delete requires explicit confirmation
|
||||
Delete behavior uses explicit guardrails:
|
||||
1. deletion is blocked while status is processing
|
||||
2. blocked delete explains constraints and offers back navigation
|
||||
3. allowed delete requires explicit confirmation and then returns to Jobs list with success feedback
|
||||
|
||||
## 10. Relationship to Other Workflows
|
||||
|
||||
|
||||
Reference in New Issue
Block a user