feat(swarm): services table improvements — image digest truncation and running/desired replica count#1833
Open
scyto wants to merge 7 commits intogetarcaneapp:feat/docker-swarmfrom
Open
feat(swarm): services table improvements — image digest truncation and running/desired replica count#1833scyto wants to merge 7 commits intogetarcaneapp:feat/docker-swarmfrom
scyto wants to merge 7 commits intogetarcaneapp:feat/docker-swarmfrom
Conversation
…nd images tables Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Display replicas as 'x / y' (running / desired) instead of a single desired count. Fixes global services showing 0 replicas by using ServiceStatus.DesiredTasks, and surfaces real-time health for replicated services via ServiceStatus.RunningTasks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Author
|
@kmendell ok finally a PR that is clean, claude really seems to have more issues than nomal with a forked version of the repo and gh operations - I think its the active linting and some of the agent rules that mean feat branch > feat branch PRs get really weird..... not sure i have actionable feedback yet on what to change these have been tested in my onwn CI image builds, if you want to pull that you can at ghcr.io/scyto/arcane:pr-13 oh i stcuk with showing @sha256:nnnnnnn as there is a reason swarms show this by default and dont use tags (because tags dont dictate image stability and all swarm nodes to know tehy are using the same sha version, not tag, and so users can validate that) |
…and network info Redesign the services table to show node placement, networks, and mounts via expandable row details. Collapsed rows show stack, short name (prefix stripped), mode, replicas, nodes, networks, and ports with overflow badges. Expanded rows reveal full service name, image, mounts, and complete lists. - Add generic expandable row support to ArcaneTable (desktop + mobile) - Enrich ServiceSummary backend type with nodes, networks, mounts fields - Fetch tasks/nodes in ListServicesPaginated to resolve node placement - Add OverflowCell pattern showing up to 3 items with "+N more" badge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add shouldIgnoreRowClick guard to mobile view matching the existing desktop behavior, so tapping dropdown menus or buttons no longer inadvertently expands/collapses the row. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(swarm): expandable rows for services table
The build-pr-images workflow on main compiles Go/frontend on the host then packages into Docker images, but the referenced Dockerfile.ci-manager and Dockerfile.ci-agent didn't exist yet, causing all PR builds to fail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ci: add missing CI packaging Dockerfiles
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two improvements to the Docker Swarm services table:
@sha256:<64-char-hash>digests with a readable@sha256:<7-char>short form in both the services and images tables, keeping the display useful without flooding the columnrunning / desired(e.g.2 / 3) instead of a single desired count; fixes global services showing0by usingServiceStatus.DesiredTaskswhich reflects the number of eligible nodes; surfaces real-time convergence state viaServiceStatus.RunningTasksChanges
Image digest truncation (
feat/swarm/services-table.svelte,images/image-table.svelte,string.utils.ts)truncateImageDigest()helper that trims@sha256:<64-hex>to@sha256:<7-hex>Running / desired replica count (
types/swarm/service.go,swarm_service.go,swarm.type.ts,services-table.svelte)RunningReplicasfield toServiceSummary;NewServiceSummaryreadsServiceStatus.RunningTasksServiceStatus.DesiredTasksas the desired count (was hardcoded0)ServiceListnow passesStatus: trueto populateServiceStatusRunningReplicasas a tiebreaker on equal desired countsx / yin both desktop table and mobile card viewsTest plan
@sha256:abc1234) instead of full hashesN / NN-1 / Nuntil Swarm reschedulesN / N(number of eligible nodes) instead of0x / yformat🤖 Generated with Claude Code
Disclaimer Greptiles Reviews use AI, make sure to check over its work.
To better help train Greptile on our codebase, if the comment is useful and valid Like the comment, if its not helpful or invalid Dislike
Greptile Summary
Enhanced Docker Swarm services table with two UI improvements: truncated SHA256 image digests for better readability (64-char → 7-char) and running/desired replica count display (e.g.,
2 / 3).Status: true) and populatesRunningReplicasfromServiceStatus.RunningTasksServiceStatus.DesiredTasksinstead of hardcoded0x / yformat in both desktop table and mobile card views@sha256:<7-hex>)The implementation is clean and follows established patterns. All changes are well-scoped to the specific features being added.
Confidence Score: 5/5
Important Files Changed
RunningReplicasfield and logic to populate desired replicas for global services fromServiceStatus.DesiredTasksStatus: trueinServiceListcall and added running replicas as tiebreaker in sort logictruncateImageDigestfunction to truncate SHA256 digests from 64 to 7 charactersLast reviewed commit: 3c921fd
(5/5) You can turn off certain types of comments like style here!