Files
LumaWeb/planning/task_matrix.csv
T
wt 6ec97125ae S00-015: Approve interruption recovery after independent readiness checks
Changes: Accept only S00-015 observed provider recovery and readiness for a fresh S00-012 review; add independent QA evidence. No source or harness changes; parent implementation acceptance remains separate.
Validation: Four focused automation tests passed in 4.585s; tasks.py validate passed at revision 33 for 281 tasks. Verified original capacity failure, committed recovered executor/QA transitions, five distinct shared-model sessions, scoped executor patch/message and unaccepted parents. Whitespace checks passed. Future provider capacity is not guaranteed.

Task: S00-015
Agent: auto-qa-1d6e76a1728f
Role: qa
Action: review
Status: done

Task title: Устранить прерывание: Fix runner prompt delivery after partial stdin timeout
2026-10-15 02:01:28 +07:00

283 lines
29 KiB
CSV

id,stage,operator,reviewer,status,owner,depends_on,title
S00-001,S00,orchestrator,security,done,auto-orchestrator-48aab142ecde,,Утвердить Web-профиль
S00-002,S00,orchestrator,security,blocked,auto-orchestrator-68a05c587e33,"S00-001, S00-011, S00-012",Выбрать framework и build runtime
S00-003,S00,protocol,qa,todo,,"S00-001, S00-002",Проверить XMPP WSS/auth библиотеку
S00-004,S00,crypto,security,todo,,"S00-001, S00-002",Проверить browser OMEMO backend
S00-005,S00,storage,qa,todo,,S00-002,Выбрать IndexedDB wrapper и migration policy
S00-006,S00,orchestrator,security,todo,,S00-002,Зафиксировать browser/reference matrix
S00-007,S00,security,orchestrator,todo,,"S00-004, S00-005",Утвердить password и crypto unlock модель
S00-008,S00,ci-cd,qa,todo,,"S00-003, S00-004",Описать WSS/upload/TURN/push topology
S00-009,S00,orchestrator,security,todo,,"S00-003, S00-004, S00-005, S00-006, S00-007, S00-008",Согласовать результаты spikes
S00-011,S00,ci-cd,security,done,auto-ci-cd-d105e8027730,S00-001,Restore verified npm registry access for the stack spike
S00-012,S00,ci-cd,qa,review,auto-ci-cd-f101e40d9902,"S00-001, S00-011, S00-013, S00-014, S00-015",Fix runner prompt delivery after partial stdin timeout
S00-013,S00,ci-cd,qa,done,auto-ci-cd-5f68f03dd33b,"S00-001, S00-011",Bound oversized S21-006 runner context without truncating requirements
S00-014,S00,ci-cd,qa,done,auto-ci-cd-14343249da62,"S00-001, S00-011, S00-013",Fix repeated runner cleanup after a submitted parent is reaped
S00-015,S00,ci-cd,qa,done,auto-ci-cd-84e209103f24,"S00-001, S00-011, S00-013, S00-014, S00-016",Устранить прерывание: Fix runner prompt delivery after partial stdin timeout
S00-016,S00,ci-cd,qa,done,auto-ci-cd-351a0cbbabef,"S00-001, S00-011, S00-013, S00-014",Restore reviewer model availability after provider capacity failure
S00-010,S00,qa,orchestrator,todo,,"S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009",Gate: Профиль и проверка стека
S01-001,S01,orchestrator,security,todo,,S00-010,Описать identity/model contracts
S01-002,S01,orchestrator,security,todo,,"S00-010, S01-001",Описать async account context
S01-003,S01,storage,qa,todo,,"S00-010, S01-001, S01-002",Описать transaction contract
S01-004,S01,protocol,qa,todo,,"S00-010, S01-001, S01-002",Описать XMPP event/command port
S01-005,S01,crypto,security,todo,,"S00-010, S01-001, S01-002",Описать crypto port
S01-006,S01,media,qa,todo,,"S00-010, S01-001, S01-002, S01-005",Описать staged asset contract
S01-007,S01,realtime,qa,todo,,"S00-010, S01-001, S01-002, S01-004",Описать call engine contract
S01-008,S01,backend,security,todo,,"S00-010, S01-001, S01-002, S01-004",Описать push API и binding
S01-009,S01,qa,orchestrator,todo,,"S01-001, S01-002, S01-003, S01-004, S01-005, S01-006, S01-007, S01-008",Gate: Предметные контракты
S02-001,S02,ci-cd,qa,todo,,S01-009,Создать workspace по accepted ADR
S02-002,S02,ci-cd,qa,todo,,"S01-009, S02-001",Настроить production build
S02-003,S02,ci-cd,qa,todo,,"S01-009, S02-001",Настроить единый code quality check
S02-004,S02,qa,orchestrator,todo,,"S01-009, S02-001",Настроить unit/contract runner
S02-005,S02,qa,orchestrator,todo,,"S01-009, S02-002, S02-004",Настроить browser smoke runner
S02-006,S02,ci-cd,qa,todo,,"S01-009, S02-002, S02-003, S02-004, S02-005",Подключить app CI
S02-007,S02,front,qa,todo,,"S01-009, S02-001, S02-004",Создать route skeleton
S02-008,S02,ci-cd,qa,todo,,"S01-009, S02-001, S02-004",Валидировать public runtime config
S02-009,S02,protocol,qa,todo,,"S01-009, S02-004",Создать typed error vocabulary
S02-010,S02,orchestrator,security,todo,,"S01-009, S02-004, S02-009",Реализовать operation context primitive
S02-011,S02,crypto,security,todo,,"S01-009, S02-004, S02-009, S02-010",Создать worker request bridge
S02-012,S02,qa,orchestrator,todo,,"S02-001, S02-002, S02-003, S02-004, S02-005, S02-006, S02-007, S02-008, S02-009, S02-010, S02-011",Gate: Workspace и инженерный каркас
S03-001,S03,front,qa,todo,,S02-012,Реализовать semantic palette
S03-002,S03,front,qa,todo,,"S02-012, S03-001",Реализовать typography/spacing tokens
S03-003,S03,front,qa,todo,,"S02-012, S03-001, S03-002",Реализовать theme preferences
S03-004,S03,front,qa,todo,,"S02-012, S03-002",Создать Button/IconButton
S03-005,S03,front,qa,todo,,"S02-012, S03-002, S03-004",Создать Input/PasswordInput
S03-006,S03,front,qa,todo,,"S02-012, S03-004",Создать Dialog/Popover
S03-007,S03,front,qa,todo,,"S02-012, S03-004",Создать Toast/InlineError
S03-008,S03,front,qa,todo,,"S02-012, S03-002",Создать Empty/LoadingState
S03-009,S03,front,qa,todo,,"S02-012, S03-001, S03-002",Создать Avatar
S03-010,S03,front,qa,todo,,"S02-012, S03-005",Создать SearchField
S03-011,S03,front,qa,todo,,"S02-012, S03-001, S03-002",Создать Badge/StatusChip
S03-012,S03,front,qa,todo,,"S02-012, S03-004",Создать icon registry
S03-013,S03,front,qa,todo,,"S02-012, S03-003, S03-004, S03-005, S03-006, S03-007, S03-008, S03-009, S03-010, S03-011, S03-012",Собрать primitive catalog
S03-014,S03,qa,orchestrator,todo,,"S02-012, S03-013",Проверить primitives
S03-015,S03,qa,orchestrator,todo,,"S03-001, S03-002, S03-003, S03-004, S03-005, S03-006, S03-007, S03-008, S03-009, S03-010, S03-011, S03-012, S03-013, S03-014",Gate: Токены и базовые компоненты
S04-001,S04,storage,qa,todo,,S03-015,Создать версионированную schema
S04-002,S04,storage,qa,todo,,"S03-015, S04-001",Реализовать transaction wrapper
S04-003,S04,storage,qa,todo,,"S03-015, S04-002",Реализовать message repository
S04-004,S04,storage,qa,todo,,"S03-015, S04-002",Реализовать conversation repository
S04-005,S04,storage,qa,todo,,"S03-015, S04-002",Реализовать checkpoint/suppression storage
S04-006,S04,storage,qa,todo,,"S03-015, S04-002",Реализовать draft persistence
S04-007,S04,storage,qa,todo,,"S03-015, S04-002, S04-003",Обработать quota/degraded mode
S04-008,S04,storage,qa,todo,,"S03-015, S04-001, S04-002",Реализовать первую migration pipeline
S04-009,S04,storage,qa,todo,,"S03-015, S04-002",Реализовать media cache policy
S04-010,S04,qa,orchestrator,todo,,"S03-015, S04-003, S04-004, S04-005, S04-006, S04-007, S04-008, S04-009",Проверить reload/recovery suite
S04-011,S04,qa,orchestrator,todo,,"S04-001, S04-002, S04-003, S04-004, S04-005, S04-006, S04-007, S04-008, S04-009, S04-010",Gate: Локальное хранилище
S05-001,S05,protocol,qa,todo,,S04-011,Валидировать WSS endpoint
S05-002,S05,protocol,qa,todo,,"S04-011, S05-001",Реализовать WSS adapter
S05-003,S05,protocol,qa,todo,,"S04-011, S05-002",Реализовать auth preference
S05-004,S05,protocol,qa,todo,,"S04-011, S05-003",Проверить SCRAM challenge limits
S05-005,S05,protocol,qa,todo,,"S04-011, S05-002",Реализовать stanza parser boundary
S05-006,S05,protocol,qa,todo,,"S04-011, S05-002, S05-005",Реализовать capability discovery
S05-007,S05,protocol,qa,todo,,"S04-011, S05-002, S05-005, S05-006",Интегрировать SM/Carbons/CSI/Ping
S05-008,S05,protocol,qa,todo,,"S04-011, S05-002, S05-007",Реализовать bounded reconnect
S05-009,S05,security,orchestrator,todo,,"S04-011, S05-003, S05-004, S05-005, S05-008",Проверить auth/secret boundary
S05-010,S05,qa,orchestrator,todo,,"S04-011, S05-006, S05-007, S05-008, S05-009",Проверить WSS/reconnect интеграцию
S05-011,S05,qa,security,todo,,"S05-001, S05-002, S05-003, S05-004, S05-005, S05-006, S05-007, S05-008, S05-009, S05-010",Gate: WSS и аутентификация
S06-001,S06,protocol,qa,todo,,S05-011,Реализовать JID/resource policy
S06-002,S06,storage,qa,todo,,"S05-011, S06-001",Реализовать saved account configs
S06-003,S06,front,qa,todo,,"S05-011, S06-001",Создать Web LoginForm
S06-004,S06,protocol,qa,todo,,"S05-011, S06-001, S06-002",Реализовать sign-in use case
S06-005,S06,protocol,qa,todo,,"S05-011, S06-004",Реализовать in-memory credentials
S06-006,S06,protocol,qa,todo,,"S05-011, S06-002, S06-004, S06-005",Реализовать switch cancellation
S06-007,S06,protocol,qa,todo,,"S05-011, S06-005, S06-006",Реализовать logout orchestration
S06-008,S06,storage,qa,todo,,"S05-011, S06-002, S06-007",Реализовать explicit local erase
S06-009,S06,front,qa,todo,,"S05-011, S06-003, S06-006, S06-007, S06-008",Создать account switch/logout UI
S06-010,S06,qa,orchestrator,todo,,"S05-011, S06-004, S06-005, S06-006, S06-007, S06-008, S06-009",Проверить lifecycle races
S06-011,S06,qa,orchestrator,todo,,"S06-001, S06-002, S06-003, S06-004, S06-005, S06-006, S06-007, S06-008, S06-009, S06-010",Gate: Аккаунты и lifecycle
S07-001,S07,front,qa,todo,,S06-011,Создать adaptive shell
S07-002,S07,front,qa,todo,,"S06-011, S07-001",Реализовать Back/selection routes
S07-003,S07,front,qa,todo,,"S06-011, S07-001",Создать ConversationRow
S07-004,S07,front,qa,todo,,"S06-011, S07-003",Реализовать search/sort policies
S07-005,S07,front,qa,todo,,"S06-011, S07-003, S07-004",Подключить empty/no-results states
S07-006,S07,protocol,qa,todo,,S06-011,Реализовать roster initial/push
S07-007,S07,protocol,qa,todo,,"S06-011, S07-006",Реализовать presence reducer
S07-008,S07,protocol,qa,todo,,"S06-011, S07-006",Реализовать avatar fetch/publish adapter
S07-009,S07,media,qa,todo,,"S06-011, S07-008",Нормализовать avatar asset
S07-010,S07,front,qa,todo,,"S06-011, S07-003, S07-004, S07-005, S07-006, S07-007, S07-008, S07-009",Собрать ContactsView
S07-011,S07,front,qa,todo,,"S06-011, S07-002, S07-006, S07-010",Создать new direct chat flow
S07-012,S07,qa,orchestrator,todo,,"S06-011, S07-002, S07-004, S07-005, S07-010, S07-011",Проверить shell и roster UI
S07-013,S07,qa,orchestrator,todo,,"S07-001, S07-002, S07-003, S07-004, S07-005, S07-006, S07-007, S07-008, S07-009, S07-010, S07-011, S07-012","Gate: Навигация, контакты и списки"
S08-001,S08,protocol,qa,todo,,S07-013,Реализовать message identity merge
S08-002,S08,protocol,qa,todo,,"S07-013, S08-001",Реализовать delivery merge
S08-003,S08,protocol,qa,todo,,"S07-013, S08-001, S08-002",Реализовать incoming decode reducer
S08-004,S08,protocol,qa,todo,,"S07-013, S08-001, S08-002, S08-003",Реализовать optimistic text send
S08-005,S08,protocol,qa,todo,,"S07-013, S08-004",Реализовать text retry
S08-006,S08,protocol,qa,todo,,"S07-013, S08-001, S08-002, S08-003",Обработать delivery receipts
S08-007,S08,protocol,qa,todo,,"S07-013, S08-004, S08-006",Реализовать displayed/markable
S08-008,S08,protocol,qa,todo,,"S07-013, S08-003, S08-007",Реализовать own-device read sync
S08-009,S08,protocol,qa,todo,,"S07-013, S08-003, S08-008",Реализовать unread/preview reducer
S08-010,S08,protocol,qa,todo,,"S07-013, S08-004, S08-008, S08-009",Реализовать self-chat policy
S08-011,S08,qa,orchestrator,todo,,"S08-001, S08-002, S08-003, S08-004, S08-005, S08-006, S08-007, S08-008, S08-009, S08-010",Gate: Сообщения и read state
S09-001,S09,front,qa,todo,,S08-011,Создать text/file bubble
S09-002,S09,front,qa,todo,,"S08-011, S09-001",Реализовать bounded timeline
S09-003,S09,front,qa,todo,,"S08-011, S09-002",Сохранить viewport при history insert
S09-004,S09,front,qa,todo,,"S08-011, S09-001",Создать multiline composer
S09-005,S09,front,qa,todo,,"S08-011, S09-004",Реализовать Enter/IME policy
S09-006,S09,front,qa,todo,,"S08-011, S09-004, S09-005",Подключить composer к send/retry
S09-007,S09,front,qa,todo,,"S08-011, S09-001, S09-002",Создать date separators/metadata
S09-008,S09,front,qa,todo,,"S08-011, S09-001, S09-002",Создать message selection state
S09-009,S09,front,qa,todo,,"S08-011, S09-003",Создать jump-to-latest
S09-010,S09,front,qa,todo,,"S08-011, S09-002, S09-003",Реализовать bounded message motion
S09-011,S09,qa,orchestrator,todo,,"S08-011, S09-005, S09-006, S09-007, S09-008, S09-009, S09-010",Проверить chat keyboard/scale
S09-012,S09,qa,orchestrator,todo,,"S09-001, S09-002, S09-003, S09-004, S09-005, S09-006, S09-007, S09-008, S09-009, S09-010, S09-011",Gate: Лента и composer
S10-001,S10,protocol,qa,todo,,S09-012,Реализовать action predicates
S10-002,S10,protocol,qa,todo,,"S09-012, S10-001",Реализовать reply/fallback encoder
S10-003,S10,protocol,qa,todo,,"S09-012, S10-002",Реализовать XML/legacy reply parser
S10-004,S10,front,qa,todo,,"S09-012, S10-003",Создать CompactReply/ThreadFocus
S10-005,S10,protocol,qa,todo,,"S09-012, S10-001",Реализовать correction reducer/command
S10-006,S10,front,qa,todo,,"S09-012, S10-005",Подключить edit composer mode
S10-007,S10,storage,qa,todo,,"S09-012, S10-001",Реализовать local deletion transaction
S10-008,S10,protocol,qa,todo,,"S09-012, S10-001",Реализовать retraction command/reducer
S10-009,S10,protocol,qa,todo,,"S09-012, S10-001",Реализовать ordered text/location forwarding
S10-010,S10,protocol,qa,todo,,"S09-012, S10-001",Реализовать reaction set reducer
S10-011,S10,front,qa,todo,,"S09-012, S10-010",Подключить ReactionChip/EmojiPicker
S10-012,S10,protocol,qa,todo,,S09-012,Реализовать typing policy/events
S10-013,S10,front,qa,todo,,"S09-012, S10-004, S10-006, S10-007, S10-008, S10-009, S10-011",Подключить context/selection actions
S10-014,S10,qa,orchestrator,todo,,"S09-012, S10-005, S10-007, S10-008, S10-010, S10-012, S10-013",Проверить out-of-order actions
S10-015,S10,qa,orchestrator,todo,,"S10-001, S10-002, S10-003, S10-004, S10-005, S10-006, S10-007, S10-008, S10-009, S10-010, S10-011, S10-012, S10-013, S10-014",Gate: Действия над сообщениями
S11-001,S11,protocol,qa,todo,,S10-015,Реализовать MAM query envelope
S11-002,S11,protocol,qa,todo,,"S10-015, S11-001",Реализовать cursor policy
S11-003,S11,protocol,qa,todo,,"S10-015, S11-001, S11-002",Реализовать recent bootstrap
S11-004,S11,protocol,qa,todo,,"S10-015, S11-001",Реализовать bounded decode slices
S11-005,S11,storage,qa,todo,,"S10-015, S11-002, S11-004",Реализовать archive commit transaction
S11-006,S11,protocol,qa,todo,,"S10-015, S11-002, S11-005",Реализовать incremental catch-up
S11-007,S11,protocol,qa,todo,,"S10-015, S11-001, S11-004, S11-006",Реализовать bounded archive recovery
S11-008,S11,protocol,qa,todo,,"S10-015, S11-001, S11-002, S11-005",Реализовать interactive backward paging
S11-009,S11,protocol,qa,todo,,"S10-015, S11-004",Ограничить pending target queues
S11-010,S11,protocol,qa,todo,,"S10-015, S11-006, S11-007",Подключить archive pause/resume
S11-011,S11,front,qa,todo,,"S10-015, S11-003, S11-008, S11-010",Подключить older history UI
S11-012,S11,qa,orchestrator,todo,,"S10-015, S11-005, S11-007, S11-008, S11-009, S11-010, S11-011",Проверить archive restart failures
S11-013,S11,qa,orchestrator,todo,,"S11-001, S11-002, S11-003, S11-004, S11-005, S11-006, S11-007, S11-008, S11-009, S11-010, S11-011, S11-012",Gate: Архив и восстановление
S12-001,S12,crypto,security,todo,,S11-013,Подключить accepted crypto backend
S12-002,S12,crypto,security,todo,,"S11-013, S12-001",Реализовать identity bootstrap
S12-003,S12,crypto,security,todo,,"S11-013, S12-002",Реализовать protected crypto persistence
S12-004,S12,crypto,security,todo,,"S11-013, S12-002",Реализовать device trust model
S12-005,S12,protocol,qa,todo,,S11-013,Реализовать legacy device list PEP
S12-006,S12,protocol,qa,todo,,"S11-013, S12-005",Реализовать legacy bundle PEP
S12-007,S12,crypto,security,todo,,"S11-013, S12-001, S12-004, S12-006",Реализовать legacy session builder
S12-008,S12,crypto,security,todo,,"S11-013, S12-007",Реализовать legacy stanza encryption
S12-009,S12,crypto,security,todo,,"S11-013, S12-007, S12-008",Реализовать legacy stanza decryption
S12-010,S12,protocol,qa,todo,,S11-013,Реализовать OMEMO2 devices PEP
S12-011,S12,protocol,qa,todo,,"S11-013, S12-010",Реализовать OMEMO2 bundle PEP
S12-012,S12,crypto,security,todo,,"S11-013, S12-001, S12-003, S12-004, S12-011",Реализовать OMEMO2 session adapter
S12-013,S12,crypto,security,todo,,"S11-013, S12-012",Интегрировать OMEMO2 payload/SCE codec
S12-014,S12,crypto,security,todo,,"S11-013, S12-013",Реализовать OMEMO2 stanza adapter
S12-015,S12,crypto,security,todo,,"S11-013, S12-008, S12-009, S12-014",Реализовать OMEMO format preference
S12-016,S12,crypto,security,todo,,"S11-013, S12-015",Подключить own-device recipients
S12-017,S12,crypto,security,todo,,"S11-013, S12-001, S12-003",Реализовать encrypted file port
S12-018,S12,front,qa,todo,,"S11-013, S12-015",Создать encryption controls
S12-019,S12,front,qa,todo,,"S11-013, S12-004, S12-015",Создать devices/fingerprint UI
S12-020,S12,security,orchestrator,todo,,"S11-013, S12-003, S12-008, S12-009, S12-014, S12-015, S12-016, S12-017, S12-018, S12-019",Проверить client crypto boundaries
S12-021,S12,qa,orchestrator,todo,,"S11-013, S12-020",Проверить OMEMO interoperability
S12-022,S12,qa,security,todo,,"S12-001, S12-002, S12-003, S12-004, S12-005, S12-006, S12-007, S12-008, S12-009, S12-010, S12-011, S12-012, S12-013, S12-014, S12-015, S12-016, S12-017, S12-018, S12-019, S12-020, S12-021",Gate: OMEMO и доверие
S13-001,S13,protocol,qa,todo,,S12-022,Реализовать room join/password
S13-002,S13,protocol,qa,todo,,"S12-022, S13-001",Реализовать encrypted-friendly config
S13-003,S13,protocol,qa,todo,,"S12-022, S13-001",Реализовать occupants/invitations
S13-004,S13,protocol,qa,todo,,"S12-022, S13-001, S13-002, S13-003",Реализовать affiliation lists
S13-005,S13,crypto,security,todo,,"S12-022, S13-004",Реализовать group recipient policy
S13-006,S13,crypto,security,todo,,"S12-022, S13-005",Подключить encrypted group send
S13-007,S13,protocol,qa,todo,,"S12-022, S13-003, S13-006",Реализовать group echo/stanza merge
S13-008,S13,protocol,qa,todo,,"S12-022, S13-001, S13-003",Реализовать saved autojoin
S13-009,S13,protocol,qa,todo,,"S12-022, S13-001, S13-007, S13-008",Реализовать leave/delete semantics
S13-010,S13,front,qa,todo,,"S12-022, S13-002, S13-003, S13-008",Создать create/join/invite UI
S13-011,S13,front,qa,todo,,"S12-022, S13-005, S13-009, S13-010",Создать GroupInfo
S13-012,S13,qa,orchestrator,todo,,"S12-022, S13-006, S13-007, S13-009, S13-011",Проверить group OMEMO/replies
S13-013,S13,qa,orchestrator,todo,,"S13-001, S13-002, S13-003, S13-004, S13-005, S13-006, S13-007, S13-008, S13-009, S13-010, S13-011, S13-012",Gate: MUC
S14-001,S14,media,qa,todo,,S13-013,Реализовать file staging
S14-002,S14,media,qa,todo,,"S13-013, S14-001",Реализовать safe media inference
S14-003,S14,protocol,qa,todo,,"S13-013, S14-002",Реализовать upload discovery/slot
S14-004,S14,media,qa,todo,,"S13-013, S14-003",Реализовать PUT with redirect policy
S14-005,S14,crypto,security,todo,,"S13-013, S14-002, S14-004",Подключить file encryption до PUT
S14-006,S14,protocol,qa,todo,,"S13-013, S14-005",Реализовать media message body
S14-007,S14,media,qa,todo,,"S13-013, S14-004, S14-006",Реализовать upload retry/cancel
S14-008,S14,media,qa,todo,,"S13-013, S14-005",Реализовать HTTPS/aesgcm download
S14-009,S14,media,qa,todo,,"S13-013, S14-006, S14-007",Реализовать sequential batch
S14-010,S14,media,qa,todo,,"S13-013, S14-008, S14-009",Реализовать media forwarding
S14-011,S14,front,qa,todo,,"S13-013, S14-001, S14-002, S14-009",Создать batch preview UI
S14-012,S14,qa,orchestrator,todo,,"S13-013, S14-007, S14-008, S14-010, S14-011",Проверить upload integration
S14-013,S14,qa,orchestrator,todo,,"S14-001, S14-002, S14-003, S14-004, S14-005, S14-006, S14-007, S14-008, S14-009, S14-010, S14-011, S14-012",Gate: Файлы и upload
S15-001,S15,media,qa,todo,,S14-013,Создать media thumbnail worker
S15-002,S15,storage,qa,todo,,"S14-013, S15-001",Подключить deduplicated preview cache
S15-003,S15,front,qa,todo,,"S14-013, S15-001, S15-002",Создать photo/video island
S15-004,S15,media,qa,todo,,S14-013,Реализовать playback coordinator
S15-005,S15,front,qa,todo,,"S14-013, S15-004",Создать voice/audio controls
S15-006,S15,front,qa,todo,,"S14-013, S15-001, S15-004",Создать round videoNote player
S15-007,S15,front,qa,todo,,"S14-013, S15-003, S15-004",Создать full-window viewer
S15-008,S15,media,qa,todo,,"S14-013, S15-002",Реализовать explicit export/download
S15-009,S15,front,qa,todo,,"S14-013, S15-005, S15-006, S15-007, S15-008",Подключить media menus/errors
S15-010,S15,qa,orchestrator,todo,,"S14-013, S15-003, S15-005, S15-006, S15-007, S15-008, S15-009",Проверить browser media states
S15-011,S15,qa,orchestrator,todo,,"S15-001, S15-002, S15-003, S15-004, S15-005, S15-006, S15-007, S15-008, S15-009, S15-010",Gate: Просмотр медиа
S16-001,S16,media,qa,todo,,S15-011,Реализовать permission adapter
S16-002,S16,media,qa,todo,,"S15-011, S16-001",Реализовать voice recorder
S16-003,S16,media,qa,todo,,"S15-011, S16-001",Реализовать videoNote recorder
S16-004,S16,media,qa,todo,,"S15-011, S16-002, S16-003",Реализовать early-stop/finalization
S16-005,S16,front,qa,todo,,"S15-011, S16-004",Создать accessible capture controls
S16-006,S16,media,qa,todo,,S15-011,Реализовать geo URI codec
S16-007,S16,media,qa,todo,,"S15-011, S16-001, S16-006",Реализовать current location adapter
S16-008,S16,front,qa,todo,,"S15-011, S16-006, S16-007",Создать manual location picker
S16-009,S16,security,orchestrator,todo,,"S15-011, S16-008",Проверить maps provider disclosure
S16-010,S16,qa,orchestrator,todo,,"S15-011, S16-005, S16-008, S16-009",Проверить capture/geo flows
S16-011,S16,qa,orchestrator,todo,,"S16-001, S16-002, S16-003, S16-004, S16-005, S16-006, S16-007, S16-008, S16-009, S16-010",Gate: Recording и геопозиция
S17-001,S17,realtime,qa,todo,,S16-011,Реализовать call state machine
S17-002,S17,realtime,qa,todo,,"S16-011, S17-001",Реализовать full JID selection
S17-003,S17,protocol,qa,todo,,"S16-011, S17-002",Реализовать JMI adapter
S17-004,S17,realtime,qa,todo,,"S16-011, S17-001",Создать WebRTC media adapter
S17-005,S17,realtime,qa,todo,,"S16-011, S17-003, S17-004",Реализовать Jingle/SDP codec
S17-006,S17,protocol,qa,todo,,S16-011,Реализовать extdisco ICE validation
S17-007,S17,realtime,qa,todo,,"S16-011, S17-002, S17-005, S17-006",Реализовать trickle candidate queues
S17-008,S17,realtime,qa,todo,,"S16-011, S17-004",Реализовать mute/camera/route use cases
S17-009,S17,realtime,qa,todo,,"S16-011, S17-001, S17-007",Реализовать ringing/recovery deadlines
S17-010,S17,realtime,qa,todo,,"S16-011, S17-001, S17-009",Реализовать history outcome policy
S17-011,S17,protocol,qa,todo,,"S16-011, S17-010",Реализовать own-device call history
S17-012,S17,front,qa,todo,,"S16-011, S17-008, S17-009, S17-010, S17-011",Создать CallScene/HistoryCard
S17-013,S17,qa,orchestrator,todo,,"S16-011, S17-006, S17-007, S17-009, S17-012",Проверить NAT/TURN/endpoint scenarios
S17-014,S17,qa,orchestrator,todo,,"S17-001, S17-002, S17-003, S17-004, S17-005, S17-006, S17-007, S17-008, S17-009, S17-010, S17-011, S17-012, S17-013",Gate: Личные звонки
S18-001,S18,backend,security,todo,,S17-014,Создать gateway service shell
S18-002,S18,backend,security,todo,,"S17-014, S18-001",Реализовать subscription storage
S18-003,S18,backend,security,todo,,"S17-014, S18-002",Реализовать ownership proof
S18-004,S18,backend,security,todo,,"S17-014, S18-003",Реализовать API limits/origin policy
S18-005,S18,backend,security,todo,,"S17-014, S18-004",Реализовать Web Push provider adapter
S18-006,S18,protocol,qa,todo,,"S17-014, S18-003, S18-005",Реализовать XMPP enable/disable
S18-007,S18,front,qa,todo,,"S17-014, S18-006",Создать notification preferences
S18-008,S18,protocol,qa,todo,,"S17-014, S18-006",Реализовать event notification policy
S18-009,S18,front,qa,todo,,"S17-014, S18-005, S18-007, S18-008",Реализовать service worker push
S18-010,S18,front,qa,todo,,"S17-014, S18-008, S18-009",Реализовать safe notification routing
S18-011,S18,protocol,qa,todo,,S17-014,Реализовать multi-tab leader
S18-012,S18,backend,security,todo,,"S17-014, S18-003, S18-005, S18-006",Реализовать revoke/expiry/rotation
S18-013,S18,security,orchestrator,todo,,"S17-014, S18-004, S18-005, S18-009, S18-012",Проверить gateway secrets/ownership
S18-014,S18,qa,orchestrator,todo,,"S17-014, S18-007, S18-008, S18-009, S18-010, S18-011, S18-012, S18-013",Проверить push/closed-tab matrix
S18-015,S18,qa,security,todo,,"S18-001, S18-002, S18-003, S18-004, S18-005, S18-006, S18-007, S18-008, S18-009, S18-010, S18-011, S18-012, S18-013, S18-014",Gate: Web Push и gateway
S19-001,S19,security,orchestrator,todo,,S18-015,Реализовать approved lock verifier
S19-002,S19,protocol,qa,todo,,"S18-015, S19-001",Реализовать lock lifecycle
S19-003,S19,front,qa,todo,,"S18-015, S19-001, S19-002",Создать LockScreen
S19-004,S19,protocol,qa,todo,,"S18-015, S19-002",Подключить lock preview policy
S19-005,S19,security,orchestrator,todo,,S18-015,Проверить XSS/text/URL boundary
S19-006,S19,security,orchestrator,todo,,S18-015,Проверить logs/evidence redaction
S19-007,S19,security,orchestrator,todo,,S18-015,Проверить forged own-device events
S19-008,S19,security,orchestrator,todo,,"S18-015, S19-003, S19-004",Проверить erase/export boundaries
S19-009,S19,security,orchestrator,todo,,"S18-015, S19-005, S19-006, S19-007",Проверить resource exhaustion limits
S19-010,S19,qa,orchestrator,todo,,"S18-015, S19-003, S19-004, S19-005, S19-006, S19-007, S19-008, S19-009",Проверить lock/security integration
S19-011,S19,qa,security,todo,,"S19-001, S19-002, S19-003, S19-004, S19-005, S19-006, S19-007, S19-008, S19-009, S19-010",Gate: Lock и security hardening
S20-001,S20,front,qa,todo,,S19-011,Собрать SettingsView
S20-002,S20,front,qa,todo,,"S19-011, S20-001",Создать ServerInfo
S20-003,S20,protocol,qa,todo,,S19-011,Реализовать safe diagnostic snapshot
S20-004,S20,front,qa,todo,,"S19-011, S20-001",Подключить typing/privacy toggles
S20-005,S20,front,qa,todo,,"S19-011, S20-001",Подключить own avatar update
S20-006,S20,front,qa,todo,,"S19-011, S20-001, S20-002, S20-003",Показать permission/capability ограничения
S20-007,S20,front,qa,todo,,"S19-011, S20-001",Создать Calls list/search
S20-008,S20,qa,orchestrator,todo,,"S19-011, S20-002, S20-003, S20-004, S20-005, S20-006, S20-007",Проверить settings integration
S20-009,S20,qa,orchestrator,todo,,"S20-001, S20-002, S20-003, S20-004, S20-005, S20-006, S20-007, S20-008",Gate: Настройки и диагностика
S21-001,S21,qa,orchestrator,todo,,S20-009,Принять accounts/transport/storage
S21-002,S21,qa,orchestrator,todo,,S20-009,Принять messages/actions/history
S21-003,S21,qa,orchestrator,todo,,S20-009,Принять crypto/MUC interoperability
S21-004,S21,qa,orchestrator,todo,,S20-009,Принять media/recording/calls
S21-005,S21,qa,orchestrator,todo,,S20-009,Принять push/lock/security
S21-006,S21,qa,orchestrator,todo,,S20-009,Принять UI/accessibility matrix
S21-007,S21,qa,orchestrator,todo,,S20-009,Измерить принятые performance budgets
S21-008,S21,ci-cd,qa,todo,,S20-009,Подготовить воспроизводимую test environment
S21-009,S21,ci-cd,qa,todo,,"S20-009, S21-008",Подготовить deploy/rollback pipeline
S21-010,S21,security,orchestrator,todo,,"S20-009, S21-001, S21-002, S21-003, S21-004, S21-005, S21-006, S21-007, S21-009",Проверить release threat/privacy checklist
S21-011,S21,docs,orchestrator,todo,,"S20-009, S21-010",Написать guide и release passport
S21-012,S21,orchestrator,security,todo,,"S20-009, S21-001, S21-002, S21-003, S21-004, S21-005, S21-006, S21-007, S21-008, S21-009, S21-010, S21-011",Согласовать полный Web scope
S21-013,S21,qa,orchestrator,todo,,"S21-001, S21-002, S21-003, S21-004, S21-005, S21-006, S21-007, S21-008, S21-009, S21-010, S21-011, S21-012",Gate: Полная Web-приёмка и поставка