[PR #79] [CLOSED] [4/4] feat(web): templates, dashboard, and node views #165

Closed
opened 2026-10-29 14:20:32 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/AgentENV/pull/79
Author: @immanuel-peter
Created: 7/29/2026
Status: ❌ Closed

Base: main ← Head: feat/web-4-templates-dashboard-nodes


📝 Commits (5)

  • 30fdc56 feat(web): scaffold control-plane console and deploy wiring
  • df423f4 feat(web): add Gateway connection settings and session cookies
  • e683477 feat(web): add sandbox and snapshot management views
  • 7be97b0 feat(web): add templates, dashboard, and node views
  • 9efd224 fix(web): harden Gateway connection credential handling

📊 Changes

119 files changed (+20416 additions, -1 deletions)

View changed files

📝 .gitignore (+5 -0)
📝 Makefile (+5 -0)
📝 deploy/docker-compose.yml (+16 -0)
➕ deploy/docker/Dockerfile.web (+32 -0)
📝 deploy/k8s/base/kustomization.yaml (+5 -0)
➕ deploy/k8s/base/web-deployment.yaml (+50 -0)
➕ deploy/k8s/base/web-service.yaml (+13 -0)
📝 docs/src/SUMMARY.md (+1 -0)
📝 docs/src/deployment/docker-compose.md (+1 -0)
📝 docs/src/deployment/kubernetes.md (+10 -1)
➕ docs/src/getting-started/web-ui.md (+50 -0)
➕ web/.dockerignore (+13 -0)
➕ web/.gitignore (+41 -0)
➕ web/README.md (+31 -0)
➕ web/components.json (+25 -0)
➕ web/eslint.config.mjs (+18 -0)
➕ web/next.config.ts (+13 -0)
➕ web/package.json (+34 -0)
➕ web/pnpm-lock.yaml (+6008 -0)
➕ web/pnpm-workspace.yaml (+3 -0)

...and 80 more files

📄 Description

What

Complete the control-plane console with template build/list/detail, cluster dashboard panels, and node inventory/detail pages. After this PR, the tree matches the full feat/agentenv-webui reference.

Why

Templates, dashboard, and nodes share dashboard formatting helpers and admin-token-gated node APIs; shipping them together finishes issue #6 without bloating the earlier auth/sandbox reviews.

Closes #6

Scope and non-goals

In scope

  • Template list/build/detail + build log viewer
  • Dashboard overview panels
  • Node list/detail (admin-token gated; degrades when token absent)

Non-goals (v1)

  • Browser terminal, filesystem browser, or in-sandbox process execution
  • Node drain/delete/scheduling configuration
  • Scheduler gRPC access (Gateway HTTP only)

Design and behavior changes

  • Dashboard aggregates Gateway sandbox/template/snapshot/node reads with manual/optional refresh
  • Node pages require admin token; other console pages remain usable without it
  • Reuses shared helpers (LocalTime, copy button, formatters) from earlier stack PRs

Compatibility and operations

  • Public API or generated protocol: N/A
  • Configuration or defaults: N/A beyond earlier stack PRs
  • Snapshot manifest, artifact layout, or storage format: N/A
  • Upgrade and rollback: additive UI-only
  • Host requirements, permissions, ports, or dependencies: same as prior stack PRs

Validation

  • make fmt
  • make clippy
  • make test-unit
  • Relevant Rust integration tests
  • make -C services test (deploy path touched in PR 1; run on full stack)
  • Generated clients/server regenerated with the documented make target
  • Documentation updated
  • Benchmarks or performance comparison completed

Commands and results:

# Validated on the full reference tip / each stacked branch build:
make fmt                                 # pass
make clippy                              # pass
make test-unit PROFILE=debug             # pass
make -C services fmt-check vet test build # pass
cd web && pnpm install --frozen-lockfile && pnpm lint && pnpm build  # pass
docker build -f deploy/docker/Dockerfile.web -t agentenv-web:validate web  # pass
mdbook build docs                        # pass

Skipped checks and reasons:

  • Rust integration tests: no **.rs / Cargo changes
  • Generated clients/server: no OpenAPI/codegen source changes
  • Benchmarks: UI-only change

Risks and reviewer notes

Stack

Merge order: #76 → #77 → #78 → #79

Checklist

  • The PR contains one coherent change and no unrelated formatting or refactoring.
  • New behavior is covered by tests, or I explained why testing is impractical.
  • Logs and examples contain no credentials, tokens, or private registry information.
  • I did not manually edit generated code without updating its source and regenerating it.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/kvcache-ai/AgentENV/pull/79 **Author:** [@immanuel-peter](https://github.com/immanuel-peter) **Created:** 7/29/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/web-4-templates-dashboard-nodes` --- ### 📝 Commits (5) - [`30fdc56`](https://github.com/kvcache-ai/AgentENV/commit/30fdc56dacd94d73062c198f5a5b38e3752bddcf) feat(web): scaffold control-plane console and deploy wiring - [`df423f4`](https://github.com/kvcache-ai/AgentENV/commit/df423f468adfcc1cced5a5030769c6d80cc19fbe) feat(web): add Gateway connection settings and session cookies - [`e683477`](https://github.com/kvcache-ai/AgentENV/commit/e6834777487892c52328fd99ab3f22d64ed61854) feat(web): add sandbox and snapshot management views - [`7be97b0`](https://github.com/kvcache-ai/AgentENV/commit/7be97b089e5c616242b8c95c00d7b5742108f0d2) feat(web): add templates, dashboard, and node views - [`9efd224`](https://github.com/kvcache-ai/AgentENV/commit/9efd224242eda9a9e153af5448d933bd4b61eac9) fix(web): harden Gateway connection credential handling ### 📊 Changes **119 files changed** (+20416 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+5 -0) 📝 `Makefile` (+5 -0) 📝 `deploy/docker-compose.yml` (+16 -0) ➕ `deploy/docker/Dockerfile.web` (+32 -0) 📝 `deploy/k8s/base/kustomization.yaml` (+5 -0) ➕ `deploy/k8s/base/web-deployment.yaml` (+50 -0) ➕ `deploy/k8s/base/web-service.yaml` (+13 -0) 📝 `docs/src/SUMMARY.md` (+1 -0) 📝 `docs/src/deployment/docker-compose.md` (+1 -0) 📝 `docs/src/deployment/kubernetes.md` (+10 -1) ➕ `docs/src/getting-started/web-ui.md` (+50 -0) ➕ `web/.dockerignore` (+13 -0) ➕ `web/.gitignore` (+41 -0) ➕ `web/README.md` (+31 -0) ➕ `web/components.json` (+25 -0) ➕ `web/eslint.config.mjs` (+18 -0) ➕ `web/next.config.ts` (+13 -0) ➕ `web/package.json` (+34 -0) ➕ `web/pnpm-lock.yaml` (+6008 -0) ➕ `web/pnpm-workspace.yaml` (+3 -0) _...and 80 more files_ </details> ### 📄 Description ## What Complete the control-plane console with template build/list/detail, cluster dashboard panels, and node inventory/detail pages. After this PR, the tree matches the full `feat/agentenv-webui` reference. ## Why Templates, dashboard, and nodes share dashboard formatting helpers and admin-token-gated node APIs; shipping them together finishes issue #6 without bloating the earlier auth/sandbox reviews. ## Related issue Closes #6 ## Scope and non-goals **In scope** - Template list/build/detail + build log viewer - Dashboard overview panels - Node list/detail (admin-token gated; degrades when token absent) **Non-goals (v1)** - Browser terminal, filesystem browser, or in-sandbox process execution - Node drain/delete/scheduling configuration - Scheduler gRPC access (Gateway HTTP only) ## Design and behavior changes - Dashboard aggregates Gateway sandbox/template/snapshot/node reads with manual/optional refresh - Node pages require admin token; other console pages remain usable without it - Reuses shared helpers (`LocalTime`, copy button, formatters) from earlier stack PRs ## Compatibility and operations - Public API or generated protocol: N/A - Configuration or defaults: N/A beyond earlier stack PRs - Snapshot manifest, artifact layout, or storage format: N/A - Upgrade and rollback: additive UI-only - Host requirements, permissions, ports, or dependencies: same as prior stack PRs ## Validation - [x] `make fmt` - [x] `make clippy` - [x] `make test-unit` - [ ] Relevant Rust integration tests - [x] `make -C services test` (deploy path touched in PR 1; run on full stack) - [ ] Generated clients/server regenerated with the documented `make` target - [x] Documentation updated - [ ] Benchmarks or performance comparison completed Commands and results: ```text # Validated on the full reference tip / each stacked branch build: make fmt # pass make clippy # pass make test-unit PROFILE=debug # pass make -C services fmt-check vet test build # pass cd web && pnpm install --frozen-lockfile && pnpm lint && pnpm build # pass docker build -f deploy/docker/Dockerfile.web -t agentenv-web:validate web # pass mdbook build docs # pass ``` Skipped checks and reasons: - Rust integration tests: no `**.rs` / Cargo changes - Generated clients/server: no OpenAPI/codegen source changes - Benchmarks: UI-only change ## Risks and reviewer notes - Layer-only compare: https://github.com/immanuel-peter/AgentENV/compare/feat/web-3-sandboxes-snapshots...feat/web-4-templates-dashboard-nodes - Full reference branch (lossless tip): `feat/agentenv-webui` - Depends on #76, #77, and #78 ## Stack Merge order: #76 → #77 → #78 → **#79** ## Checklist - [x] The PR contains one coherent change and no unrelated formatting or refactoring. - [x] New behavior is covered by tests, or I explained why testing is impractical. - [x] Logs and examples contain no credentials, tokens, or private registry information. - [x] I did not manually edit generated code without updating its source and regenerating it. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-29 14:20:32 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
kvcache-ai/AgentENV#165
No description provided.