From e85de13875a9ffebc66bca50c618861ff499dc92 Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 29 Apr 2026 18:44:06 +0100 Subject: [PATCH] vault backup: 2026-04-29 18:44:06 --- .../Full-Implementation-Plan.md | 6 ++ .../Multi-Tenant Audit — Handover.md | 94 +++++++++++-------- 99 Daily/2026-04-29.md | 3 + 3 files changed, 66 insertions(+), 37 deletions(-) diff --git a/01 Projects/video-accessibility/Full-Implementation-Plan.md b/01 Projects/video-accessibility/Full-Implementation-Plan.md index bb5b2ae..d808274 100644 --- a/01 Projects/video-accessibility/Full-Implementation-Plan.md +++ b/01 Projects/video-accessibility/Full-Implementation-Plan.md @@ -662,3 +662,9 @@ CLIENT-роль **внутри основного приложения долж 10. **Все деструктивные действия — с confirmation.** Delete job, Reassign linguist, Approve all languages — модалка с явным impact описанием. 11. **Email = mirror in-app.** Любая email-уведомление имеет deep-link на in-app экран. Любое in-app событие, требующее action, дублируется email'ом. 12. **Audit видим участникам.** Linguist/Reviewer/PM видят историю изменений в job-scope. Cross-org audit — только ADMIN. + +## Sessions +### 2026-04-29 – Review the client-side application flow and +**Asked:** Review the client-side application flow and identify logic breaks, UX inconsistencies, and areas needing improvement. +**Done:** Analyzed application flow in Obsidian and documented progress across 4 commits with PM features, deadline management, reject categories, and hotkey implementations. + diff --git a/01 Projects/video-accessibility/Multi-Tenant Audit — Handover.md b/01 Projects/video-accessibility/Multi-Tenant Audit — Handover.md index e73f7b5..d960c14 100644 --- a/01 Projects/video-accessibility/Multi-Tenant Audit — Handover.md +++ b/01 Projects/video-accessibility/Multi-Tenant Audit — Handover.md @@ -85,38 +85,44 @@ status: in-progress - PM добавлен к Audit Log (sidebar + RoleGate) — план PM-18 - `Upload Video` в sidebar теперь видит PM (был только client/production/admin) -### 🟡 PR-3 «PM productivity» — IN PROGRESS (branch: `feat/pm-productivity`, commit `460c6ce`) +### 🟡 PR-3+4+5 — IN PROGRESS (branch: `feat/pm-productivity`, последний commit `1bf0fb9`) -> [!info] Частично сделано — ветка запушена, продолжать от `feat/pm-productivity` +> [!info] Ветка объединяет PM productivity, Linguist/Reviewer improvements и tech debt -| ID | Задача | Файл | Статус | -|----|--------|------|--------| -| W-5 | Project defaults autofill при выборе existing project | `NewJob.tsx` | ✅ Done | -| PM-9 | "Needs my attention" quick filter presets (Final Review / In QC / Failed) | `JobsList.tsx` | ✅ Done | -| PM-10 | PM включён в `canManageJobs`, New Job button, Final Review action | `JobsList.tsx` | ✅ Done | -| PM-12 | Server pagination (`size:50` + page state + pagination controls) | `JobsList.tsx` | ✅ Done | -| W-4 | Team assignment matrix на форме создания job (до AI) | `NewJob.tsx` | ❌ Отложено | -| PM-1 | Deadline column + overdue colors | `JobsList.tsx` | ❌ Не начато | -| PM-2 | Clone project/job | `routes_projects.py`, `routes_jobs.py` | ❌ Не начато | -| PM-7 | Bulk assign linguist | `QCDetail.tsx`, `language_qc.py` | ❌ Не начато | -| PM-15 | Project share read-only link для CLIENT | `routes_share.py` (новый) | ❌ Не начато | +#### PR-3 (PM productivity) -### 🟡 PR-4 «Linguist & Reviewer productivity» +| ID | Задача | Статус | +|----|--------|--------| +| W-5 | Project defaults autofill при выборе existing project | ✅ Done | +| PM-9 | Quick filter presets (Final Review / In QC / TTS Failed / Render Failed) | ✅ Done | +| PM-10 | PM в `canManageJobs`, New Job button, Final Review row action | ✅ Done | +| PM-12 | Server pagination (size:50 + page controls, status server-side) | ✅ Done | +| PM-1 | Deadline field + column in JobsList + overdue red highlight + date picker in NewJob | ✅ Done | +| PM-2 | Clone job: `POST /jobs/{id}/clone` + Clone button in JobsList + useCloneJob hook | ✅ Done | +| W-4 | Team assignment matrix на форме создания job | ❌ Отложено (сложно) | +| PM-7 | Bulk assign linguist | ❌ Не начато | +| PM-15 | Project share read-only link для CLIENT (`routes_share.py`) | ❌ Не начато | -- Glossary inline в VttEditor -- Diff AI baseline vs current edit -- Optimistic locking (concurrent edits → 409) -- Reviewer reviewed-cues tracking + gate approve -- Reject reason categories (не free-text) -- Hotkeys (Cmd+Enter save, `]`/`[` prev/next cue) +#### PR-4 (Linguist & Reviewer productivity — частично) -### 🟢 PR-5 «Polish & tech debt» +| ID | Задача | Статус | +|----|--------|--------| +| R-4 | Reject reason categories (timing/mistranslation/terminology/profanity/length/other) pill-select в reject modal | ✅ Done | +| R-2 | Reviewed-cues progress bar + approve gated at 80% for reviewer | ✅ Done | +| L-9 | Hotkey Cmd+S saves full VTT; Escape closes all reject forms | ✅ Done | +| L-1/L-6 | Glossary inline в VttEditor, CPS warning | ❌ Не начато | +| L-3 | Optimistic locking (If-Match / 409) | ❌ Не начато | +| L-7 | Diff AI baseline vs current | ❌ Не начато | -- Единый `lib/jobStatusMessages.ts` -- Native `` для captions (сейчас кастомный div) -- AD audio sync с video -- CSRF защита -- Unified upload size limit (сейчас 3 разных значения в коде) +#### PR-5 (Polish & tech debt — частично) + +| ID | Задача | Статус | +|----|--------|--------| +| T-1 | Unified status labels — `JOB_STATUS_LABELS` + `getJobStatusLabel` в `jobStatusMessages.ts`; дублирование удалено из StatusBadge и JobsList | ✅ Done | +| T-14 | Unified upload size: `settings.upload_max_video_bytes` + `settings.upload_signed_url_ttl_hours` | ✅ Done | +| T-6 | Native `` для captions (сейчас custom div) | ❌ Не начато | +| T-7 | AD audio sync с video | ❌ Не начато | +| T-11 | CSRF защита | ❌ Не начато | --- @@ -175,16 +181,30 @@ cd backend && ruff check . ### 2026-04-29 – Session 2 **Done:** -- PR-3 `feat/pm-productivity` pushed (`460c6ce`): - - W-5: project defaults autofill on NewJob project select - - PM-9: quick filter presets for PM/admin (Final Review / In QC / TTS Failed / Render Failed) - - PM-10: PM added to `canManageJobs`, New Job button, Final Review row action - - PM-12: server-side pagination (size 50, page controls) +- PR-3 первая порция (`460c6ce`): W-5, PM-9, PM-10, PM-12 -**Next session — continue PR-3:** -- PM-1: Deadline column in JobsList (need `deadline` field in Job model first) -- PM-2: Clone project/job endpoints (`routes_projects.py`, `routes_jobs.py`) -- PM-7: Bulk assign linguist (`QCDetail.tsx` + `language_qc.py`) -- PM-15: Read-only share link for CLIENT (`routes_share.py` new file) -- W-4: Team assignment matrix on NewJob form (deferred, complex) +### 2026-04-29 – Session 3 + +**Done (commit `13db347`):** +- PM-1: deadline field in Job model, NewJob date picker, JobsList column + overdue red +- PM-2: `POST /jobs/{id}/clone`, `useCloneJob` hook, Clone button in JobsList +- R-4: reject categories (pill selector) in QCDetail reject modal + backend validation +- R-2: reviewed_cues/total_cues in LanguageQCState, progress bar + 80% approve gate, `/mark-cue-reviewed` endpoint + +**Done (commit `1bf0fb9`):** +- L-9: Cmd+S saves full VTT, Escape closes all reject forms in QCDetail +- T-1: unified `JOB_STATUS_LABELS` / `getJobStatusLabel` in `jobStatusMessages.ts`, dups removed +- T-14: `settings.upload_max_video_bytes` + `settings.upload_signed_url_ttl_hours` in config.py + +**Full plan saved to Obsidian:** `[[Full-Implementation-Plan]]` + +**Remaining work:** +- PM-7: Bulk assign linguist +- PM-15: Read-only share link for CLIENT +- L-1/L-6: Glossary inline in VttEditor, CPS warning +- L-3: Optimistic locking (If-Match / 409) +- L-7: Diff AI baseline vs current +- T-6: Native `` for captions +- T-7: AD audio sync +- T-11: CSRF diff --git a/99 Daily/2026-04-29.md b/99 Daily/2026-04-29.md index e2b38cc..0c3ff0a 100644 --- a/99 Daily/2026-04-29.md +++ b/99 Daily/2026-04-29.md @@ -455,3 +455,6 @@ tags: [daily] - 18:29 (3min) | `video-accessibility` - **Asked:** Review client-side application flow and identify logic breaks, inconsistencies, and UX issues. - **Done:** Analyzed application architecture and documented findings in Obsidian for handover. +- 18:42 | `video-accessibility` + - **Asked:** Review the client-side application flow and identify logic breaks, UX inconsistencies, and areas needing improvement. + - **Done:** Analyzed application flow in Obsidian and documented progress across 4 commits with PM features, deadline management, reject categories, and hotkey implementations.