skillok meeting

Убрана полоса «Дальше» под расшифровкой

Конспект, задачи, ревью и свой запрос — на своих вкладках (у пустой вкладки кнопка «Сделать»). README и CHANGELOG 1.4 — под это. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

anc · 2 октября 2026 г. 0fd9dec299001feea939bb2bf54891037292726b
4 файла
  • CHANGELOG.md +5
    Показать разницуСкрыть разницу
    16 16 - **Звук ↔ текст.** Нажали на время реплики — звук с этого места; звучащая реплика
    17 17 подсвечивается. Пробел — играть и пауза, ←/→ — 5 секунд.
    18 18
    19 +### Убрано
    20 +
    21 +- Полоса «Дальше» под расшифровкой — конспект, задачи, ревью и свой запрос делаются на
    22 + своих вкладках.
    23 +
    19 24 ## 1.3 — 01.10.2026
    20 25
    21 26 Главное: **встреча не потеряется молча** — звук проверяется до записи и во время неё, а ход
  • README.md +2 −2
    Показать разницуСкрыть разницу
    70 70 - «Расшифровка» — реплики с временем и говорящим: «Я» и «Спикер 1, 2, 3…».
    71 71 **Имя говорящего можно переименовать**: нажмите на него, впишите «Ольга» — имя
    72 72 сменится во всей записи, в конспекте и задачах;
    73 − - «Конспект», «Задачи», «Ревью» и «Свой запрос» («напиши письмо клиенту по итогам») —
    74 − кнопками в полосе «Дальше» под расшифровкой. Ответ ИИ пишется на глазах.
    73 + - «Конспект», «Задачи», «Ревью» и «+ Свой запрос» («напиши письмо клиенту по итогам») —
    74 + вкладками; у пустой вкладки одна кнопка «Сделать». Ответ ИИ пишется на глазах.
    75 75
    76 76 Сверху — «Копировать» (Markdown) и «как текст»; у вкладки — «Править», «Сделать
    77 77 заново», «Удалить». Галочки задач отмечаются прямо в тексте.
  • Показать разницуСкрыть разницу
    327 327 .tr-who-input { justify-self: start; width: min(240px, 100%); padding: 2px 6px; font-size: var(--text-sm); font-weight: 700; }
    328 328 .tr-text p { color: var(--kv-body); line-height: 1.6; }
    329 329
    330 −/* Следующий шаг под расшифровкой */
    331 −.next {
    332 − display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    333 − padding: 12px 24px; border-top: 1px solid var(--color-border); background: var(--color-bg-secondary);
    334 −}
    335 −.next-label { margin-right: 8px; font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-text-secondary); }
    336 −
    337 330 /* Проигрыватель — полоса внизу экрана записи */
    338 331 .player {
    339 332 position: sticky; bottom: -80px; z-index: 3;
  • src/views/meeting.ts +1 −12
    Показать разницуСкрыть разницу
    223 223 };
    224 224
    225 225 // ── Шаг 3: результат ──
    226 − const nextStep = () => {
    227 − const job = jobs.jobOf(id);
    228 − const todo = PRESETS.filter((p) => !section(p.heading));
    229 − if (!hasKey) return "";
    230 − return `
    231 − <div class="next">
    232 − <span class="next-label">Дальше</span>
    233 − ${todo.map((p) => `<button class="ui-btn ui-btn-sm" data-make="${esc(p.heading)}" ${job ? "disabled" : ""}>${esc(p.heading)}</button>`).join("")}
    234 − <button class="ui-btn ui-btn-sm" data-tab="${esc(CUSTOM_TAB)}">Свой запрос</button>
    235 − </div>`;
    236 − };
    237 226 const tabContent = () => {
    238 227 const job = jobs.jobOf(id);
    239 228 const jobError = jobs.errorOf(id);
    327 316 </div>
    328 317 ${errorLine}
    329 318 <div class="pane-body" data-view>${isTranscript ? transcriptView(body, d.meeting.markers ?? []) : `<div class="md">${render(body)}</div>`}</div>
    330 − ${isTranscript ? nextStep() : ""}`;
    319 + `;
    331 320 };
    332 321
    333 322 const resultStep = () => `