Skip to content

feat(demo): add Claude and ANF booth proof - #181

Merged
shreyanshjain7174 merged 44 commits into
mainfrom
feat/shared-web-theme
Jul 19, 2026
Merged

shreyanshjain7174 merged 44 commits into
mainfrom
feat/shared-web-theme

Conversation

@shreyanshjain7174

@shreyanshjain7174 shreyanshjain7174 commented Jul 19, 2026 •

Copy link
Copy Markdown
Collaborator

What does this PR do?

Adds the Agentic Summit booth proof and shared product web theme.

The live path now shows Kubernetes state becoming ANF, entering a rendered AgentWorkload, and routing through LiteLLM to Claude. The control room consumes bounded typed stdout events and preserves LIVE, CONFIG ONLY, and PRIOR RUN evidence boundaries.

This also persists runtime adapter identity for safe polling and cleanup, raises the bounded objective limit to 32 KiB, hardens provider error handling, and records per-model cost.

The tracked fallback includes a replay log and a 41-second, 1152x720 GIF. Both show RECORDED REHEARSAL rather than live state.

The measured ANF comparison uses the same projected document in both encodings: 1,339 JSON bytes versus 621 ANF bytes, a 53.6% reduction. Omitted Kubernetes facts are counted separately.

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • CI/infrastructure

Checklist

  • go build ./... passes
  • go vet ./... passes
  • go test ./... passes (or relevant subset)
  • No private-repo content leaked into OSS core
  • Commit is signed off (git commit -s)
  • Documentation updated (if applicable)

How to test

make validate
bash tests/smoke/test_demo_booth_cli.sh
bash tests/smoke/test_oss_private_boundary.sh
python3 scripts/demo_visualizer_test.py
helm unittest charts

go mod tidy
git diff --exit-code go.mod go.sum

BASE_REF=origin/main HEAD_REF=HEAD \
  bash scripts/check_oss_private_boundary.sh

DEMO_REPLAY_DELAY_SECONDS=0.5 \
  python3 scripts/demo-visualizer.py --replay demos/demo-claude-anf.log

The clean-checkout gate passed through b118434 with 109 Python tests, 1 expected xfail, 46 visualizer tests, and 18 Helm tests. The module tidy and OSS/private boundary CI commands also pass from a clean checkout.

Copilot review comments were addressed in b118434. ANF summary labels now share the parser grammar. Objective-limit test messages now use character-count wording.

The live booth command is:

python3 scripts/demo-visualizer.py --present --tamper-audit --pace 6

The live kind rehearsal completed with real Claude token and cost evidence. The gVisor panel remains dry-run configuration proof. NetworkPolicy remains object-presence proof. The audit receipt remains a prior-run HMAC fixture.

Related issues

None.

Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 19, 2026 08:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds the Agentic Summit booth proof path and shared visual theme. It introduces a live namespace snapshot tool that emits ANF plus a single parseable summary line, upgrades the booth flow to Claude via LiteLLM, and tightens evidence boundaries across the control-room surfaces. It also hardens provider error handling, records per-model cost, and persists runtime adapter identity for safe resume and cleanup.

Changes:

  • Add tools/anf-snapshot CLI to snapshot Kubernetes namespace state, translate to ANF, and emit bounded summary plus preview lines.
  • Update model routing and providers to separate operator system instructions from untrusted user prompts, and redact provider HTTP error bodies.
  • Add shared web theme assets and apply them to the Python demo visualizer and agentctl-web demo UI. Expand CRD objective bound to 32 KiB and persist runtime adapter provenance.

Reviewed changes

Copilot reviewed 55 out of 61 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tools/anf-snapshot/snapshot/snapshot.go New snapshot + ANF encoding, metrics, and safe artifact write.
tools/anf-snapshot/snapshot/snapshot_test.go Snapshot determinism, omission accounting, and artifact-write tests.
tools/anf-snapshot/main.go New anf-snapshot CLI for live namespace capture.
tools/anf-snapshot/main_test.go CLI option parsing, kubeconfig cluster resolution, and output contract tests.
tools/anf-snapshot/go.mod Nested module for the snapshot tool.
tools/anf-snapshot/go.sum Snapshot tool dependency pinning.
scripts/demo-visualizer.py SSE control room parsing for ANF summary, workload, provider, and cost evidence.
pkg/webtheme/embed.go Embed shared CSS/SVG theme assets.
pkg/webtheme/embed_test.go Validate embedded CSS tokens and SVG accessibility/constraints.
pkg/webtheme/assets/clawdlinux-theme.css Canonical theme tokens for both demo surfaces.
pkg/webtheme/assets/clawdlinux-mark.svg Canonical mark asset.
pkg/webtheme/assets/clawdlinux-wordmark.svg Canonical wordmark asset.
pkg/runtime/registry.go Add ForType and route through normalized runtime type.
pkg/runtime/registry_test.go Cover ForType normalization and error behavior.
pkg/llm/routing.go Add operator system prompt separation and provider reuse logic.
pkg/llm/routing_test.go Ensure legacy provider contract stays intact.
pkg/llm/provider.go Add role-aware provider call, HTTP error redaction, and bounded drain.
pkg/llm/provider_test.go Verify system/user separation and redacted HTTP errors plus reuse.
pkg/llm/mock_provider.go Add role-aware mock provider support.
pkg/finops/memory_reporter.go Track and export per-model estimated cost.
pkg/finops/memory_reporter_test.go Add per-model cost tests, including LiteLLM Anthropic alias.
Makefile Add nested tool test/vet/staticcheck/build targets and wire into validate.
internal/controller/runtime_wiring_test.go Add tests for persisted runtime provenance usage.
internal/controller/agentworkload_controller.go Persist runtime type, template rejection, and safer model-routing prompt handling.
examples/research-agent.template.yaml Template-only workload with ANF injection marker and Claude alias mapping.
docs/SHOWCASE-DEMO-WALKTHROUGH.md Booth runbook with strict LIVE/CONFIG ONLY/PRIOR RUN boundaries.
docs/plans/2026-07-14-claude-anf-showcase.md Implementation plan for Claude + ANF showcase.
docs/plans/2026-07-13-shared-web-theme.md Implementation plan for shared web theme.
docs/PITCH-SCRIPT.md Update booth pitch script to Claude + ANF path.
demos/README.md Document replay artifacts and evidence boundaries.
demos/demo-claude-anf.log Recorded rehearsal log for replay mode.
config/crd/bases/agentic.clawdlinux.org_agentworkloads.yaml Increase objective limit and add status runtime provenance field.
cmd/agentctl-web/templates/partials/workloads.html Button labeling and status badge rendering updates.
cmd/agentctl-web/templates/partials/status.html Component availability labeling and phase badge rendering updates.
cmd/agentctl-web/templates/partials/describe.html Update buttons and phase badge rendering.
cmd/agentctl-web/templates/login.html Apply shared theme and brand wording.
cmd/agentctl-web/templates/layout.html Apply shared theme and updated navigation branding.
cmd/agentctl-web/templates/demo.html Rework demo page to show evidence boundaries and live source availability.
cmd/agentctl-web/middleware.go Allow unauthenticated access to theme assets; keep app routes protected.
cmd/agentctl-web/middleware_test.go Add middleware coverage for theme assets and demo auth behavior.
cmd/agentctl-web/main.go Serve /theme/ from embedded assets in both demo and normal modes.
cmd/agentctl-web/handlers.go Refactor demo handler to poll sources independently and render new demo view model.
charts/values.schema.json Add builtinOpenAIModelsEnabled toggle schema.
charts/tests/litellm_existing_secret_test.yaml Assert OpenAI aliases can be disabled while Anthropic remains.
charts/charts/litellm/values.yaml Add builtinOpenAIModelsEnabled default.
charts/charts/litellm/templates/configmap.yaml Gate OpenAI aliases behind builtinOpenAIModelsEnabled.
api/v1alpha1/agentworkload_webhook.go Enforce objective length via Unicode character count and raise limit.
api/v1alpha1/agentworkload_webhook_test.go Update webhook tests for new 32 KiB objective limit.
api/v1alpha1/agentworkload_types.go Update CRD markers and document persona prompt append as untrusted.
api/v1alpha1/agentworkload_compatibility_test.go Validate CRD schema changes and webhook/CRD agreement for length.
.gitignore Track the replay log while keeping other logs ignored.
.github/workflows/test-gates.yml Expand path filters and add smoke + Helm unit tests.
.github/workflows/ci.yml Add nested tool module tidy/tests and rely on make lint gates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/anf-snapshot/snapshot/snapshot.go Resolved
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 59 out of 66 changed files in this pull request and generated 2 comments.

Comment thread tools/anf-snapshot/snapshot/snapshot.go Resolved
@shreyanshjain7174
shreyanshjain7174 merged commit ce5cfd7 into main Jul 19, 2026
9 checks passed
@shreyanshjain7174
shreyanshjain7174 deleted the feat/shared-web-theme branch July 19, 2026 08:25
shreyanshjain7174 added a commit that referenced this pull request Jul 22, 2026
Add the shared Clawdlinux web theme and Agentic Summit control room.

Route live Kubernetes context through ANF, AgentWorkload, LiteLLM, and Claude. Preserve evidence boundaries and include portable replay artifacts.

Signed-off-by: Shreyansh Sancheti <43677304+shreyanshjain7174@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants