[PR #76] [1/4] feat(web): scaffold control-plane console and deploy wiring #160

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

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/AgentENV/pull/76
Author: @immanuel-peter
Created: 7/29/2026
Status: 🔄 Open

Base: main ← Head: feat/web-1-scaffold


📝 Commits (1)

  • 30fdc56 feat(web): scaffold control-plane console and deploy wiring

📊 Changes

65 files changed (+9517 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 45 more files

📄 Description

What

Add the Next.js control-plane Web UI scaffold (web/), Compose/Kubernetes deploy wiring for agentenv-web, and getting-started docs. Feature routes are intentional stubs until later PRs in this stack.

Why

Maintainers asked for smaller reviewable PRs rather than one large Web UI change. This first slice lands deployable shell + docs without connection or resource logic.

Part of #6 (full stack closes it via #79).

Scope and non-goals

In scope

  • Next.js app shell, shadcn UI kit, console sidebar/layout
  • Stub pages for dashboard/settings/sandboxes/snapshots/templates/nodes
  • Dockerfile.web, Compose web service, k8s Deployment/Service
  • Docs + Makefile/gitignore updates

Non-goals

  • Gateway credentials / session cookies (#77)
  • Sandbox/snapshot/template/node/dashboard feature UIs (#78–#79)

Design and behavior changes

  • New web/ package (Next.js App Router + pnpm)
  • UI published on port 3000 in Compose; k8s Service agentenv-web
  • Nav links exist; stub pages state which follow-up PR owns each surface

Compatibility and operations

  • Public API or generated protocol: N/A
  • Configuration or defaults: Compose/K8s gain optional web service; AENV_DEFAULT_GATEWAY_URL env is present for later PRs
  • Snapshot manifest, artifact layout, or storage format: N/A
  • Upgrade and rollback: additive; remove/disable the web service to roll back
  • Host requirements, permissions, ports, or dependencies: Node/pnpm for local web/; container via deploy/docker/Dockerfile.web

Validation

  • Documentation updated
  • Web lint/build

Commands and results:

cd web && pnpm install --frozen-lockfile && pnpm lint && pnpm build  # pass

Skipped checks and reasons:

  • make fmt / make clippy / make test-unit: no Rust changes in this slice
  • make -C services test: no Go service code changes (deploy YAML only)
  • Benchmarks: UI scaffold only

Risks and reviewer notes

  • Review deploy path: deploy/docker-compose.yml, deploy/docker/Dockerfile.web, deploy/k8s/base/web-*.yaml
  • Stub pages are temporary; do not expect working resource UIs yet
  • Full reference branch: feat/agentenv-webui on the fork

Stack

  1. #76 — scaffold + deploy
  2. #77 — connection + session
  3. #78 — sandboxes + snapshots
  4. #79 — templates + dashboard + nodes

Please merge strictly 1 → 4. Until preceding PRs merge, later PR diffs include earlier layers; review scope for PR k after the first is its latest commit (compare link in each body). After each merge, remaining PRs will be rebased onto main.

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/76 **Author:** [@immanuel-peter](https://github.com/immanuel-peter) **Created:** 7/29/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/web-1-scaffold` --- ### 📝 Commits (1) - [`30fdc56`](https://github.com/kvcache-ai/AgentENV/commit/30fdc56dacd94d73062c198f5a5b38e3752bddcf) feat(web): scaffold control-plane console and deploy wiring ### 📊 Changes **65 files changed** (+9517 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 45 more files_ </details> ### 📄 Description ## What Add the Next.js control-plane Web UI scaffold (`web/`), Compose/Kubernetes deploy wiring for `agentenv-web`, and getting-started docs. Feature routes are intentional stubs until later PRs in this stack. ## Why Maintainers asked for smaller reviewable PRs rather than one large Web UI change. This first slice lands deployable shell + docs without connection or resource logic. ## Related issue Part of #6 (full stack closes it via #79). ## Scope and non-goals **In scope** - Next.js app shell, shadcn UI kit, console sidebar/layout - Stub pages for dashboard/settings/sandboxes/snapshots/templates/nodes - `Dockerfile.web`, Compose `web` service, k8s Deployment/Service - Docs + Makefile/gitignore updates **Non-goals** - Gateway credentials / session cookies (#77) - Sandbox/snapshot/template/node/dashboard feature UIs (#78–#79) ## Design and behavior changes - New `web/` package (Next.js App Router + pnpm) - UI published on port 3000 in Compose; k8s Service `agentenv-web` - Nav links exist; stub pages state which follow-up PR owns each surface ## Compatibility and operations - Public API or generated protocol: N/A - Configuration or defaults: Compose/K8s gain optional web service; `AENV_DEFAULT_GATEWAY_URL` env is present for later PRs - Snapshot manifest, artifact layout, or storage format: N/A - Upgrade and rollback: additive; remove/disable the web service to roll back - Host requirements, permissions, ports, or dependencies: Node/pnpm for local `web/`; container via `deploy/docker/Dockerfile.web` ## Validation - [x] Documentation updated - [x] Web lint/build Commands and results: ```text cd web && pnpm install --frozen-lockfile && pnpm lint && pnpm build # pass ``` Skipped checks and reasons: - `make fmt` / `make clippy` / `make test-unit`: no Rust changes in this slice - `make -C services test`: no Go service code changes (deploy YAML only) - Benchmarks: UI scaffold only ## Risks and reviewer notes - Review deploy path: `deploy/docker-compose.yml`, `deploy/docker/Dockerfile.web`, `deploy/k8s/base/web-*.yaml` - Stub pages are temporary; do not expect working resource UIs yet - Full reference branch: `feat/agentenv-webui` on the fork ## Stack 1. **#76** — scaffold + deploy 2. **#77** — connection + session 3. **#78** — sandboxes + snapshots 4. **#79** — templates + dashboard + nodes Please merge strictly 1 → 4. Until preceding PRs merge, later PR diffs include earlier layers; review scope for PR *k* after the first is its latest commit (compare link in each body). After each merge, remaining PRs will be rebased onto `main`. ## 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>
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#160
No description provided.