fix(node): use compact guideline copy and plain setup checkmarks
This commit is contained in:
@@ -11,7 +11,7 @@ import sys
|
|||||||
from build_deb import build, VERSION, BRAND_SHA256
|
from build_deb import build, VERSION, BRAND_SHA256
|
||||||
|
|
||||||
ROOT = Path(__file__).resolve().parents[1]
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
DG_COMMIT = "be6463fd596ae2a1a96409d2cee84edc90e7167f"
|
DG_COMMIT = "3adeb33b1b300bf7add342a5c3a863fda15dc8a6"
|
||||||
|
|
||||||
|
|
||||||
def guideline_sources():
|
def guideline_sources():
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import tarfile
|
|||||||
|
|
||||||
|
|
||||||
ROOT = Path(__file__).resolve().parents[1]
|
ROOT = Path(__file__).resolve().parents[1]
|
||||||
VERSION = "0.6.8"
|
VERSION = "0.6.9"
|
||||||
BRAND_SHA256 = "8bfee8ca9f98e0db48d98aae3af4b32493b8593e18b064a0239d513d824182af"
|
BRAND_SHA256 = "8bfee8ca9f98e0db48d98aae3af4b32493b8593e18b064a0239d513d824182af"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export function EnvironmentView({environment,failure,success}: {environment:Retu
|
|||||||
<ResourceList aria-label="Этапы настройки окружения">{value.profile.steps.map(specification=>{
|
<ResourceList aria-label="Этапы настройки окружения">{value.profile.steps.map(specification=>{
|
||||||
const step=value.run?.steps.find(item=>item.id===specification.id);
|
const step=value.run?.steps.find(item=>item.id===specification.id);
|
||||||
const state=step?.state??"pending";
|
const state=step?.state??"pending";
|
||||||
return <li key={specification.id}><ResourceRow icon={state==="running"?<ActivityIndicator size="compact" />:<Icon name={state==="error"?"alert":"circle"} />} title={specification.label} description={specification.description} metadata={step?.detail} status={<StatusBadge tone={state==="complete"?"success":state==="error"?"warning":"neutral"}>{state==="complete"?<Icon name="check" label="Этап завершён" />:labels[state]??"Неизвестно"}</StatusBadge>} /></li>;
|
return <li key={specification.id}><ResourceRow icon={state==="running"?<ActivityIndicator size="compact" />:<Icon name={state==="error"?"alert":"circle"} />} title={specification.label} description={specification.description} metadata={step?.detail} status={state==="complete"?<Icon name="check" label="Этап завершён" />:<StatusBadge tone={state==="error"?"warning":"neutral"}>{labels[state]??"Неизвестно"}</StatusBadge>} /></li>;
|
||||||
})}</ResourceList>
|
})}</ResourceList>
|
||||||
{value.run&&!running&&value.run.updated_at>0&&<p className="node-note">Результат проверки от {new Date(value.run.updated_at*1000).toLocaleString("ru-RU")}.</p>}
|
{value.run&&!running&&value.run.updated_at>0&&<p className="node-note">Результат проверки от {new Date(value.run.updated_at*1000).toLocaleString("ru-RU")}.</p>}
|
||||||
{complete&&!running&&<p className="node-note">Системные этапы завершены. Ниже проверьте вход в Tailscale и доверенный ключ для SSH.</p>}
|
{complete&&!running&&<p className="node-note">Системные этапы завершены. Ниже проверьте вход в Tailscale и доверенный ключ для SSH.</p>}
|
||||||
|
|||||||
@@ -183,3 +183,24 @@ START с предыдущим сеансом отвергаются. Втора
|
|||||||
отмечает недоступность БК и запрещает аппаратные команды до свежего подтверждения.
|
отмечает недоступность БК и запрещает аппаратные команды до свежего подтверждения.
|
||||||
Физические unplug/replug и смена USB-порта требуют отдельной аппаратной приёмки;
|
Физические unplug/replug и смена USB-порта требуют отдельной аппаратной приёмки;
|
||||||
автоматическое пересоздание sandbox IIO при смене путей пока не подтверждено.
|
автоматическое пересоздание sandbox IIO при смене путей пока не подтверждено.
|
||||||
|
|
||||||
|
|
||||||
|
## Приёмка 0.6.8 и типографика 0.6.9
|
||||||
|
|
||||||
|
На подготовленном Mini 0.6.8 через Node UI проверены: отсутствие download после
|
||||||
|
перезапуска, единственная лампочка, повторная подготовка из настроек с успешной
|
||||||
|
SDK-проверкой, имя Node → Core → Node, исходная запись шести потоков и STOP.
|
||||||
|
Короткая запись завершена: 596246528 байт, SQLite quick_check=ok, 12999 сообщений;
|
||||||
|
SHA-256 2b7d213d2126edbb7e031c17634e2750956bbf7d4205549bbe1d8b155d9c4108.
|
||||||
|
Во время финализации UI продолжал отвечать. Реальные кадры остались на БК.
|
||||||
|
|
||||||
|
Владелец физически отключил USB: в списках обоих интерфейсов строка исчезла,
|
||||||
|
в уже открытом просмотре появилось сообщение об отключении, START недоступен.
|
||||||
|
Время реакции от физического события инструментально не измерялось.
|
||||||
|
Повторное подключение и захват без подготовки ещё ожидают аппаратной проверки.
|
||||||
|
|
||||||
|
Уточнение UI 06.09.2026: SettingsCard и пустые списки используют компактные
|
||||||
|
заголовки md (13 px), описания sm (12 px). Правило закреплено в Design Guideline
|
||||||
|
`docs/OPERATIONAL_TYPOGRAPHY.md` и registry; локального увеличения заголовков нет.
|
||||||
|
Завершённый этап настройки окружения показывает только Icon check, без плашки
|
||||||
|
StatusBadge. Убрано дублирование сообщения об отключении в просмотре камеры.
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export function SensorDetail({device,transport,back,refresh,failure,enabled=true
|
|||||||
const currentOption=detail?.options?.find(v=>v.id===option);const active=device.snapshot.acquisition==='streaming'||device.snapshot.acquisition==='starting'||device.snapshot.acquisition==='stopping';
|
const currentOption=detail?.options?.find(v=>v.id===option);const active=device.snapshot.acquisition==='streaming'||device.snapshot.acquisition==='starting'||device.snapshot.acquisition==='stopping';
|
||||||
return <div className="sensor-content"><div><Button onClick={back}>К устройствам</Button></div>
|
return <div className="sensor-content"><div><Button onClick={back}>К устройствам</Button></div>
|
||||||
<SettingsCard title={device.name} description={`${device.model} · USB ${device.usb}${device.firmware?' · '+device.firmware:''}`}>
|
<SettingsCard title={device.name} description={`${device.model} · USB ${device.usb}${device.firmware?' · '+device.firmware:''}`}>
|
||||||
{!device.online&&<p>Камера отключена от БК.</p>}
|
{!device.online&&!device.snapshot.message&&<p>Камера отключена от БК.</p>}
|
||||||
{device.snapshot.message&&<p>{device.snapshot.message}</p>}
|
{device.snapshot.message&&<p>{device.snapshot.message}</p>}
|
||||||
<div className="sensor-actions"><Button disabled={!enabled||pending||!detail||active||!device.online} onClick={()=>void act('start',{profiles:Object.values(selected).filter(Boolean),record:false})}>Начать просмотр</Button><Button disabled={!enabled||pending||!detail||active||!device.online} onClick={()=>void act('start',{profiles:Object.values(selected).filter(Boolean),record:true})}>Начать запись</Button><Button disabled={!enabled||pending||(!active&&device.snapshot.acquisition!=='failed')} onClick={()=>void act('stop')}>{device.playback_id?'Закрыть запись':'Остановить захват'}</Button>{pending&&<ActivityIndicator label="Выполняем команду камеры"/>}</div>
|
<div className="sensor-actions"><Button disabled={!enabled||pending||!detail||active||!device.online} onClick={()=>void act('start',{profiles:Object.values(selected).filter(Boolean),record:false})}>Начать просмотр</Button><Button disabled={!enabled||pending||!detail||active||!device.online} onClick={()=>void act('start',{profiles:Object.values(selected).filter(Boolean),record:true})}>Начать запись</Button><Button disabled={!enabled||pending||(!active&&device.snapshot.acquisition!=='failed')} onClick={()=>void act('stop')}>{device.playback_id?'Закрыть запись':'Остановить захват'}</Button>{pending&&<ActivityIndicator label="Выполняем команду камеры"/>}</div>
|
||||||
{device.playback_id&&<p>Просмотр исходной записи · повтор. Камера для него не запускается.</p>}
|
{device.playback_id&&<p>Просмотр исходной записи · повтор. Камера для него не запускается.</p>}
|
||||||
|
|||||||
Reference in New Issue
Block a user