Milestone v1 (v2.0.0): Mokosh — Session Capture #1

Merged
strategy155 merged 297 commits from gsd/phase-04-harden-clean-up-optional into main 2026-05-31 15:34:17 +00:00
3 changed files with 136 additions and 2 deletions
Showing only changes of commit 110cebc50d - Show all commits

66
_locales/en/messages.json Normal file
View File

@@ -0,0 +1,66 @@
{
"extName": {
"message": "Mokosh — Session Capture",
"description": "manifest.json:name; surfaces in chrome://extensions, Web Store, right-click menus, and notification titles. Per brand-decisions-v1.md D-07 (override of branding draft A: 'Mokosh' alone). Operator-facing purpose explicit."
},
"extDesc": {
"message": "Thirty seconds ago, always at hand.",
"description": "manifest.json:description; tagline per brand-decisions-v1.md D-08. Read in Web Store + chrome://extensions card."
},
"tooltipOff": {
"message": "Mokosh — click to start recording",
"description": "Toolbar action title (chrome.action.setTitle) in OFF state. Click triggers chrome.action.onClicked → startVideoCapture per Plan 01-09 D-16-toolbar."
},
"tooltipRecPrefix": {
"message": "Mokosh — recording",
"description": "Toolbar action title prefix in REC state. The SW concatenates ' (MM:SS)' at runtime via formatElapsed(seconds) — see src/background/index.ts."
},
"tooltipErr": {
"message": "Mokosh — recording error, click to recover",
"description": "Toolbar action title in ERROR state. Click reattempts startVideoCapture."
},
"popupSavePrompt": {
"message": "Save error report?",
"description": "Popup heading copy (currently unused; reserved for future popup layouts that expose the question explicitly)."
},
"popupSaveCta": {
"message": "Save report",
"description": "Popup primary CTA button text (idle state). Triggers SAVE_ARCHIVE message to SW."
},
"popupSaveDone": {
"message": "Archive saved to Downloads.",
"description": "Popup status message after SAVE_ARCHIVE success. Used in the saveArchive success branch."
},
"popupSaving": {
"message": "Saving...",
"description": "Popup CTA text while SAVE_ARCHIVE is in flight."
},
"popupSaveDoneShort": {
"message": "Done ✓",
"description": "Popup CTA text immediately after SAVE_ARCHIVE success (3-second transient before returning to idle)."
},
"popupEmptyState": {
"message": "Open recording via the extension icon",
"description": "Popup empty-state status text shown when popup loads without an active recording (rare under Plan 01-09 SAVE-only charter)."
},
"popupInfoText": {
"message": "Last 30 s video + 10 min log",
"description": "Popup info-text below the SAVE button. Brief explanation of what the archive contains."
},
"notifStartup": {
"message": "Recording started. I'm watching the last 30 seconds.",
"description": "Notification body for the onStartup + manual-start flow. The notification title is extName."
},
"notifRecovery": {
"message": "Recording resumed. Buffer refilling.",
"description": "Notification body for the post-RECORDING_ERROR recovery flow. The notification title is extName."
},
"welcomeHeroRu": {
"message": "Тридцать секунд назад, всегда под рукой.",
"description": "Welcome page hero — Russian-quoted text (rendered alongside the English version in parallel-text layout regardless of locale)."
},
"welcomeHeroEn": {
"message": "Thirty seconds ago, always at hand.",
"description": "Welcome page hero — English text (rendered alongside the Russian version in parallel-text layout)."
}
}

66
_locales/ru/messages.json Normal file
View File

@@ -0,0 +1,66 @@
{
"extName": {
"message": "Mokosh — Запись сессии",
"description": "manifest.json:name; отображается в chrome://extensions, Web Store, контекстных меню. Per brand-decisions-v1.md D-07."
},
"extDesc": {
"message": "Тридцать секунд назад, всегда под рукой.",
"description": "manifest.json:description; слоган per brand-decisions-v1.md D-08."
},
"tooltipOff": {
"message": "Mokosh — щёлкните, чтобы начать запись",
"description": "Подсказка кнопки на панели инструментов в режиме OFF. Click triggers chrome.action.onClicked → startVideoCapture."
},
"tooltipRecPrefix": {
"message": "Mokosh — идёт запись",
"description": "Подсказка кнопки в режиме REC; SW добавляет ' (MM:SS)' через formatElapsed(seconds)."
},
"tooltipErr": {
"message": "Mokosh — ошибка записи, щёлкните для восстановления",
"description": "Подсказка кнопки в режиме ERROR. Click reattempts startVideoCapture."
},
"popupSavePrompt": {
"message": "Сохранить отчёт об ошибке?",
"description": "Заголовок попапа (зарезервировано для будущих макетов попапа с явным вопросом)."
},
"popupSaveCta": {
"message": "Сохранить отчёт",
"description": "Текст основной CTA-кнопки попапа (idle state). Триггерит SAVE_ARCHIVE."
},
"popupSaveDone": {
"message": "Архив сохранён в Загрузки.",
"description": "Статусное сообщение попапа после успешного SAVE_ARCHIVE."
},
"popupSaving": {
"message": "Сохраняю...",
"description": "Текст CTA-кнопки попапа во время выполнения SAVE_ARCHIVE."
},
"popupSaveDoneShort": {
"message": "Готово! ✓",
"description": "Текст CTA-кнопки попапа сразу после успешного SAVE_ARCHIVE (3 секунды до возврата в idle)."
},
"popupEmptyState": {
"message": "Откройте запись через иконку расширения",
"description": "Empty-state статус попапа когда попап открыт без активной записи (редко в режиме SAVE-only из Plan 01-09)."
},
"popupInfoText": {
"message": "Последние 30 сек видео + 10 мин лога",
"description": "Info-text под SAVE-кнопкой. Краткое описание содержимого архива."
},
"notifStartup": {
"message": "Запись запущена. Я слежу за последними 30 секундами.",
"description": "Тело уведомления для onStartup + manual-start. Заголовок — extName."
},
"notifRecovery": {
"message": "Запись возобновлена. Буфер снова заполняется.",
"description": "Тело уведомления после RECORDING_ERROR recovery. Заголовок — extName."
},
"welcomeHeroRu": {
"message": "Тридцать секунд назад, всегда под рукой.",
"description": "Welcome page hero — Russian text (показывается рядом с английским в parallel-text layout)."
},
"welcomeHeroEn": {
"message": "Thirty seconds ago, always at hand.",
"description": "Welcome page hero — English text (показывается рядом с русским в parallel-text layout)."
}
}

View File

@@ -1,8 +1,9 @@
{
"manifest_version": 3,
"name": "AI Call Recorder",
"name": "__MSG_extName__",
"version": "1.0.0",
"description": "Запись сессий операторов для диагностики ошибок",
"default_locale": "en",
"description": "__MSG_extDesc__",
"permissions": [
"desktopCapture",
"activeTab",
@@ -28,6 +29,7 @@
],
"action": {
"default_popup": "src/popup/index.html",
"default_title": "__MSG_tooltipOff__",
"default_icon": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",