Skip to content

feat(containers): add raw inspect tab to container detail view#2368

Open
GiulioSavini wants to merge 3 commits intogetarcaneapp:mainfrom
GiulioSavini:fix/container-inspect-tab
Open

feat(containers): add raw inspect tab to container detail view#2368
GiulioSavini wants to merge 3 commits intogetarcaneapp:mainfrom
GiulioSavini:fix/container-inspect-tab

Conversation

@GiulioSavini
Copy link
Copy Markdown
Contributor

@GiulioSavini GiulioSavini commented Apr 13, 2026

Summary

  • Adds a new Inspect tab to the container detail page
  • Displays the full container data as formatted JSON (equivalent to docker container inspect)
  • Includes a Copy JSON button for easy clipboard export
  • No backend changes needed — reuses the existing ContainerDetailsDto already loaded on the page

Preview

The tab appears as the last item in the container nav bar and renders a scrollable pre/code block with the full inspect JSON.

Related

Closes #1381

Test plan

  • Open any container detail page
  • Click the Inspect tab
  • Verify JSON is displayed and matches container data
  • Click Copy JSON and verify clipboard content
  • Confirm tab appears for both running and stopped containers

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

To have Greptile Re-Review the changes, mention greptileai.

Greptile Summary

This PR adds a new Inspect tab to the container detail page that renders the full ContainerDetailsDto as formatted JSON (equivalent to docker container inspect) with a Copy JSON button. The implementation is clean — $props() / $derived are used correctly, HTML is auto-escaped so there is no XSS risk, and the tab is unconditionally visible as intended.

  • pt.json is missing tabs_inspect: it is the only locale among the 18 changed files that did not receive the new key, which will cause a missing or empty tab label for Portuguese users.

Confidence Score: 4/5

Safe to merge after adding the missing tabs_inspect key to pt.json.

One P1 defect: pt.json is missing the tabs_inspect translation key that every other locale received. This will cause a broken tab label for Portuguese users and should be fixed before merging. Remaining finding is P2 (duplicate icon).

frontend/messages/pt.json — missing tabs_inspect key

Fix All in Codex

Prompt To Fix All With AI
This is a comment left during a code review.
Path: frontend/messages/pt.json
Line: 389-396

Comment:
**Missing `tabs_inspect` key**

`pt.json` is the only locale file that does not include the new `tabs_inspect` key. All 17 other locales in this PR add it. Without this key the Portuguese locale will either render a broken/empty tab label or fall back to the English value depending on how paraglide handles missing keys.

Add `"tabs_inspect": "Inspect",` near the other `tabs_*` entries in `pt.json` (mirroring every other locale file).

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: frontend/src/routes/(app)/containers/[containerId]/+page.svelte
Line: 216

Comment:
**Duplicate icon for Inspect and Compose tabs**

Both the Compose tab (line 215) and the new Inspect tab use `CodeIcon`. Consider using a distinct icon (e.g. a magnifying glass / search icon) to help users visually distinguish the two tabs at a glance.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "feat(containers): add raw inspect tab to..." | Re-trigger Greptile

Greptile also left 2 inline comments on this PR.

Adds a new 'Inspect' tab in the container detail page that displays
the full container JSON data, matching what docker inspect returns.
Includes a copy-to-clipboard button for easy export.

Closes getarcaneapp#1381
@GiulioSavini GiulioSavini requested a review from a team April 13, 2026 10:30
@kmendell
Copy link
Copy Markdown
Member

kmendell commented Apr 13, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Comment on lines 389 to 396
"containers_mount_label_host": "Host:",
"containers_mount_label_source": "Origem:",
"containers_no_mounts_configured": "Sem volumes ou montagens configuradas",
"containers_inspect_title": "Raw Inspect",
"containers_inspect_description": "Full JSON output of docker container inspect",
"container": "Contêiner",
"container_name_required": "Nome do contêiner é obrigatório",
"container_image_required": "Requer imagem",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Missing tabs_inspect key

pt.json is the only locale file that does not include the new tabs_inspect key. All 17 other locales in this PR add it. Without this key the Portuguese locale will either render a broken/empty tab label or fall back to the English value depending on how paraglide handles missing keys.

Add "tabs_inspect": "Inspect", near the other tabs_* entries in pt.json (mirroring every other locale file).

Prompt To Fix With AI
This is a comment left during a code review.
Path: frontend/messages/pt.json
Line: 389-396

Comment:
**Missing `tabs_inspect` key**

`pt.json` is the only locale file that does not include the new `tabs_inspect` key. All 17 other locales in this PR add it. Without this key the Portuguese locale will either render a broken/empty tab label or fall back to the English value depending on how paraglide handles missing keys.

Add `"tabs_inspect": "Inspect",` near the other `tabs_*` entries in `pt.json` (mirroring every other locale file).

How can I resolve this? If you propose a fix, please make it concise.

Fix in Codex

...(hasMounts ? [{ value: 'storage', label: m.containers_nav_storage(), icon: VolumesIcon }] : []),
...(showComposeTab ? [{ value: 'compose', label: m.tabs_compose(), icon: CodeIcon }] : [])
...(showComposeTab ? [{ value: 'compose', label: m.tabs_compose(), icon: CodeIcon }] : []),
{ value: 'inspect', label: m.tabs_inspect(), icon: CodeIcon }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Duplicate icon for Inspect and Compose tabs

Both the Compose tab (line 215) and the new Inspect tab use CodeIcon. Consider using a distinct icon (e.g. a magnifying glass / search icon) to help users visually distinguish the two tabs at a glance.

Prompt To Fix With AI
This is a comment left during a code review.
Path: frontend/src/routes/(app)/containers/[containerId]/+page.svelte
Line: 216

Comment:
**Duplicate icon for Inspect and Compose tabs**

Both the Compose tab (line 215) and the new Inspect tab use `CodeIcon`. Consider using a distinct icon (e.g. a magnifying glass / search icon) to help users visually distinguish the two tabs at a glance.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex

Copy link
Copy Markdown
Member

@kmendell kmendell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove any translations thats not en.json or your native laguage, as crowdin will handle the rest vai community translators.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

⚡️ Feature: Add raw inspect json tab in container view

2 participants