Сообщение о восстановленных скилах видно в ленте

Веб-интерфейс и TUI показывают у synthetic-сообщения только description, поэтому
вместо «skill-compact-resurrect» там теперь сам текст. В README — где сообщение
видно в веб-интерфейсе: в Timeline detail = Compact (по умолчанию) оно свёрнуто в
группу вызовов тулов, в Everything — отдельной строкой.
This commit is contained in:
2026-10-29 21:53:51 -07:00
parent ca63625e35
commit 14779f4520
2 changed files with 17 additions and 2 deletions
+13
View File
@@ -28,6 +28,19 @@ Compaction заменяет всё это сводкой.
не запускает (`resume: false`);
- добавляет строку в `$XDG_DATA_HOME/opencode/log/skill-compact-resurrect.log`.
### Где видно сообщение в веб-интерфейсе
Служебные сообщения веб-интерфейс показывает одной строкой, и где именно — зависит от настройки
**Settings → Preferences → Timeline → Timeline detail**:
- **Compact** (по умолчанию) — служебные сообщения сгруппированы и свёрнуты. Сообщение плагина приходит
между шагами модели, поэтому оказывается внутри ближайшей группы вызовов («Used 1 Shell» и т. п.) и видно,
только если её раскрыть;
- **Everything** (ползунок до упора вправо) — служебные сообщения идут отдельной строкой, сообщение видно
сразу.
Отдельно от группировки — только compaction и смена модели или каталога; плагин на это повлиять не может.
## Установка
Положить ссылку на файл в `plugins/` конфига OpenCode — он подхватывает такие файлы сам:
+4 -2
View File
@@ -112,9 +112,11 @@ export default {
restored.length ? `♻ После compaction восстановлены скилы: ${restored.join(", ")}.` : "",
lost.length ? `Не найдены (удалены или переименованы): ${lost.join(", ")}.` : "",
].filter(Boolean).join(" ")
// Не ждём: хук держит запрос к модели, а сообщение войдёт в историю на границе шага
// Не ждём: хук держит запрос к модели, а сообщение войдёт в историю на границе шага.
// Веб-интерфейс и TUI показывают у synthetic только description (без него — не показывают
// вовсе), поэтому в description — сам текст
ctx.session
.synthetic({ sessionID, text, description: "skill-compact-resurrect", resume: false })
.synthetic({ sessionID, text, description: text, resume: false })
.catch((e) => log(`${sessionID}: synthetic failed: ${e?.message ?? e}`))
}