Machines details page #39

Closed
opened 2026-10-06 22:59:02 +02:00 by EduarD3V · 4 comments
Owner

url: http://192.168.31.41:5173/agents/machines/UUID

i need you to do the next things. right now when i go to the machine details page, it shows a plain name, like in http://192.168.31.41:5173/agents/machines/adam-master with adam-master. that is wrong, use the machine uuid and ensure different host with same name doesnt collide. also update any selector of hosts.

the other thing is to improve the layout because under capabilities there is a lot of data:

Capabilities

OS
linux
Distribution
rocky 9.6
Architecture
amd64
Kernel
5.14.0-570.58.1.el9_6.x86_64
CPUs
6
Memory
15.2 GiB
Uptime
2556h
Package manager
dnf
Container runtimes
docker, podman
Disks
/ 75.094818816G 43.80410802055407% · /boot 1.00663296G 44.158935546875% · /home 170.725433344G 7.280245149506199% · /boot/efi 0.627900416G 1.1761559336186203% · /var/lib/kubelet/pods/290fd5e8-66a4-4d5f-be1b-d330ebfa6cf1/volume-subpaths/config-volume/filebrowser/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/dbfc3662-b6dd-4c8e-9713-d80fb61ec0cb/volume-subpaths/config-volume/searxng/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/0e38e6bc-709a-42f3-9fd3-bf7f1140dc48/volume-subpaths/molos-demo-data-pv/molos-demo/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/7ea6a21d-13b6-4604-a35c-de95b4000257/volumes/kubernetes.io~local-volume/pvc-cf16ac0a-cc1d-470a-919c-7224ef501e7e 75.094818816G 43.80410802055407%
Shells
bash
Interpreters
bash=/usr/bin/bash, powershell=—, python=3.9.25
Commands
systemctl, df, journalctl, docker, podman, curl, dnf, yum, git, python3, tar, sh, bash, ss, ip, free, uptime


instead of two first divs, use one div full widht with the next tabs:

  • overview: overview, os, distributioon, architecture, kernel, cpus, memory, uptime,
  • Exec: package manager and container runtimes and shells and interpreters and commands
  • disks: disks
url: http://192.168.31.41:5173/agents/machines/UUID i need you to do the next things. right now when i go to the machine details page, it shows a plain name, like in http://192.168.31.41:5173/agents/machines/adam-master with adam-master. that is wrong, use the machine uuid and ensure different host with same name doesnt collide. also update any selector of hosts. the other thing is to improve the layout because under capabilities there is a lot of data: Capabilities OS linux Distribution rocky 9.6 Architecture amd64 Kernel 5.14.0-570.58.1.el9_6.x86_64 CPUs 6 Memory 15.2 GiB Uptime 2556h Package manager dnf Container runtimes docker, podman Disks / 75.094818816G 43.80410802055407% · /boot 1.00663296G 44.158935546875% · /home 170.725433344G 7.280245149506199% · /boot/efi 0.627900416G 1.1761559336186203% · /var/lib/kubelet/pods/290fd5e8-66a4-4d5f-be1b-d330ebfa6cf1/volume-subpaths/config-volume/filebrowser/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/dbfc3662-b6dd-4c8e-9713-d80fb61ec0cb/volume-subpaths/config-volume/searxng/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/0e38e6bc-709a-42f3-9fd3-bf7f1140dc48/volume-subpaths/molos-demo-data-pv/molos-demo/0 75.094818816G 43.80410802055407% · /var/lib/kubelet/pods/7ea6a21d-13b6-4604-a35c-de95b4000257/volumes/kubernetes.io~local-volume/pvc-cf16ac0a-cc1d-470a-919c-7224ef501e7e 75.094818816G 43.80410802055407% Shells bash Interpreters bash=/usr/bin/bash, powershell=—, python=3.9.25 Commands systemctl, df, journalctl, docker, podman, curl, dnf, yum, git, python3, tar, sh, bash, ss, ip, free, uptime --- instead of two first divs, use one div full widht with the next tabs: - overview: overview, os, distributioon, architecture, kernel, cpus, memory, uptime, - Exec: package manager and container runtimes and shells and interpreters and commands - disks: disks
gotoi-agent added reference issue/39-machines-details 2026-10-07 00:28:19 +02:00
Collaborator

Claimed — branch issue/39-machines-details. Doing: machine details page keyed by uuid (no name collisions), host selectors updated, capabilities reorganised into a full-width tabbed panel (overview/exec/disks).

Claimed — branch `issue/39-machines-details`. Doing: machine details page keyed by uuid (no name collisions), host selectors updated, capabilities reorganised into a full-width tabbed panel (overview/exec/disks).
Collaborator

Plan: /home/eduardez/workspace/gotoi-wt/meta/issue-39.plan.md

Tasks:

  1. dashboard: derived machine uuid id = fnv1a digest of '|' (stable, no schema change); MachineRow.id + api-cache rows carry it; machines.test.ts ids updated.
  2. dashboard: sweep every host selector/link (agents, machines list, groups, chat, hex map, pinned, ObjectTable) to the id; HTTP stays hostname-keyed.
  3. dashboard: rename route dir [hostname] -> [id]; resolve id -> hostname from live cache behind $ready; canonical peer match.
  4. dashboard: one full-width tabbed card on the detail page - overview / Exec / disks (replaces the two half-width divs).
  5. UCs FE-65/66/68/85 + scripts/e2e/nav_selenium.py (machine detail href discovered from the list, not hardcoded).
  6. Gates: _check.py, check-ai-headers.py, check-type-mirror.py, dashboard bun run test && check, rg 'Showing lines'.

Refs #39

Plan: /home/eduardez/workspace/gotoi-wt/meta/issue-39.plan.md Tasks: 1. dashboard: derived machine uuid id = fnv1a digest of '<org>|<canonical host>' (stable, no schema change); MachineRow.id + api-cache rows carry it; machines.test.ts ids updated. 2. dashboard: sweep every host selector/link (agents, machines list, groups, chat, hex map, pinned, ObjectTable) to the id; HTTP stays hostname-keyed. 3. dashboard: rename route dir [hostname] -> [id]; resolve id -> hostname from live cache behind $ready; canonical peer match. 4. dashboard: one full-width tabbed card on the detail page - overview / Exec / disks (replaces the two half-width divs). 5. UCs FE-65/66/68/85 + scripts/e2e/nav_selenium.py (machine detail href discovered from the list, not hardcoded). 6. Gates: _check.py, check-ai-headers.py, check-type-mirror.py, dashboard bun run test && check, rg 'Showing lines'. Refs #39
Collaborator

Done. Branch issue/39-machines-details, 2 local commits (not pushed); tree clean.

Commits

  • b1bbca5 feat(dashboard): derive machine uuid as MachineRow.id
  • 60cb368 feat(dashboard): machine detail keyed by uuid, tabbed capability panel

What changed

  1. Machine detail keys on a uuid: every host selector links /agents/machines/<uuid> (agents inspector, machines list row key + ?id= + Open profile, groups members/candidates, hex map click + sr-only nav, pinned shortcuts, dashboard machine widget, control chat). Route dir is [id]; the page resolves the id to a hostname from its live cache behind $ready and still calls the hostname-keyed HTTP API. Org is in the id seed, so same-named hosts in different orgs cannot collide.
  2. One full-width tabbed panel replaces the two cramped cards: overview (peers + os/distribution/arch/kernel/cpus/memory/uptime), Exec (pkg manager, runtimes, shells, interpreters, commands), disks.

Note: the issue asks for a "machine uuid" but no uuid exists in the model (PK is (organizationId, hostname)). Implemented as a deterministic derived uuid (four FNV-1a lanes over <org>|<canonical host>, 8-4-4-4-12) — no schema column, no migration, middleware untouched, no type-mirror change.

Gates

  • docs/use-cases/_check.py — all 350 conform
  • scripts/check-ai-headers.py — 569 ok, 0 missing
  • scripts/check-type-mirror.py — exit 0
  • middleware bun test — 564 pass, 0 fail
  • dashboard bun run test — 238 pass
  • dashboard bun run check — 0 errors
  • dashboard bun run build — ok
  • rg 'Showing lines' — no source hit

Live smoke: standalone middleware :3199 (scratch DB, GOTOI_DEV_SEED_USER=1) + this worktree dashboard :5199, signed in as [email protected]. /agents/machines selects ?id=<uuid>; detail renders the Overview/Exec/Disks tab strip; unknown uuid shows "Machine not in the ledger"; a legacy hostname URL still resolves; no console errors.

UCs updated: FE-65, FE-66, FE-68, FE-85; scripts/e2e/nav_selenium.py now discovers the machines detail href from the list (not executed here — selenium not installed).

Refs #39

Done. Branch `issue/39-machines-details`, 2 local commits (not pushed); tree clean. **Commits** - b1bbca5 feat(dashboard): derive machine uuid as MachineRow.id - 60cb368 feat(dashboard): machine detail keyed by uuid, tabbed capability panel **What changed** 1. Machine detail keys on a uuid: every host selector links `/agents/machines/<uuid>` (agents inspector, machines list row key + `?id=` + Open profile, groups members/candidates, hex map click + sr-only nav, pinned shortcuts, dashboard machine widget, control chat). Route dir is `[id]`; the page resolves the id to a hostname from its live cache behind `$ready` and still calls the hostname-keyed HTTP API. Org is in the id seed, so same-named hosts in different orgs cannot collide. 2. One full-width tabbed panel replaces the two cramped cards: overview (peers + os/distribution/arch/kernel/cpus/memory/uptime), Exec (pkg manager, runtimes, shells, interpreters, commands), disks. Note: the issue asks for a "machine uuid" but no uuid exists in the model (PK is `(organizationId, hostname)`). Implemented as a deterministic derived uuid (four FNV-1a lanes over `<org>|<canonical host>`, 8-4-4-4-12) — no schema column, no migration, middleware untouched, no type-mirror change. **Gates** - docs/use-cases/_check.py — all 350 conform - scripts/check-ai-headers.py — 569 ok, 0 missing - scripts/check-type-mirror.py — exit 0 - middleware bun test — 564 pass, 0 fail - dashboard bun run test — 238 pass - dashboard bun run check — 0 errors - dashboard bun run build — ok - rg 'Showing lines' — no source hit **Live smoke**: standalone middleware :3199 (scratch DB, GOTOI_DEV_SEED_USER=1) + this worktree dashboard :5199, signed in as [email protected]. `/agents/machines` selects `?id=<uuid>`; detail renders the Overview/Exec/Disks tab strip; unknown uuid shows "Machine not in the ledger"; a legacy hostname URL still resolves; no console errors. UCs updated: FE-65, FE-66, FE-68, FE-85; scripts/e2e/nav_selenium.py now discovers the machines detail href from the list (not executed here — selenium not installed). Refs #39
Collaborator

DONE — branch issue/39-machines-details pushed; PR #49 (target agent-develop). Commits: b1bbca5 (machine uuid derived as MachineRow.id), 60cb368 (detail route keyed by uuid + host selectors swept + full-width tabbed capabilities panel overview/Exec/disks). Gates verified independently by orchestrator: dashboard vitest 238 passed, svelte-check 0 errors, ai-headers ok, type-mirror ok, uc-check ok. Note: machine id = fnv1a digest of org+canonical host (stable, no schema change).

DONE — branch issue/39-machines-details pushed; PR https://git.eduard3v.com/EduarD3V/gotoi/pulls/49 (target agent-develop). Commits: b1bbca5 (machine uuid derived as MachineRow.id), 60cb368 (detail route keyed by uuid + host selectors swept + full-width tabbed capabilities panel overview/Exec/disks). Gates verified independently by orchestrator: dashboard vitest 238 passed, svelte-check 0 errors, ai-headers ok, type-mirror ok, uc-check ok. Note: machine id = fnv1a digest of org+canonical host (stable, no schema change).
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
EduarD3V/gotoi#39
No description provided.