kingkont 0.19.2 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/renderer/board.js +23 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.19.2",
3
+ "version": "0.19.3",
4
4
  "description": "KingKont · Chatium — нод-редактор сцен с AI-генерацией (картинки/видео/голос/SFX/музыка/текст)",
5
5
  "main": "main.js",
6
6
  "bin": {
package/renderer/board.js CHANGED
@@ -1467,6 +1467,29 @@ async function openFilm(handle) {
1467
1467
  // Подзаголовок шапки = имя открытого проекта (вместо «Видео-редактор»).
1468
1468
  const sub = $('brandSub');
1469
1469
  if (sub) { sub.textContent = handle.name; sub.classList.add('has-project'); }
1470
+ // Для cloud-проектов имя авторитетное на сервере (manifest.name). Если
1471
+ // юзер пришёл по уведомлению / прямой ссылке — handle.name мог быть
1472
+ // id или старое имя; подтягиваем актуальное и обновляем шапку +
1473
+ // localStorage.cloudProjectsCache (чтобы welcome-карточка не отставала).
1474
+ if (state.cloudProjectId) {
1475
+ fetch('/api/projects/' + encodeURIComponent(state.cloudProjectId))
1476
+ .then(r => r.ok ? r.json() : null)
1477
+ .then(proj => {
1478
+ if (!proj?.name || state.cloudProjectId !== proj.id) return;
1479
+ if (sub && proj.name !== sub.textContent) sub.textContent = proj.name;
1480
+ // Patch handle.name (используется sidebar/recents и т.п.).
1481
+ try { handle.name = proj.name; } catch {}
1482
+ // Sync cache.
1483
+ try {
1484
+ const cached = JSON.parse(localStorage.getItem('cloudProjectsCache') || '[]');
1485
+ const i = cached.findIndex(c => c.id === proj.id);
1486
+ if (i >= 0 && cached[i].name !== proj.name) {
1487
+ cached[i].name = proj.name;
1488
+ localStorage.setItem('cloudProjectsCache', JSON.stringify(cached));
1489
+ }
1490
+ } catch {}
1491
+ }).catch(() => {});
1492
+ }
1470
1493
  // Третья строка (имя board) пока пустая — заполнится при selectBoard.
1471
1494
  const boardEl = $('brandBoard');
1472
1495
  if (boardEl) { boardEl.style.display = 'none'; boardEl.innerHTML = ''; }