Open
Conversation
…erver deployments
- Add memory leak tool component with API endpoints for inducing and clearing leaks. - Introduce Playwright load testing configuration and scripts for UI performance testing. - Update package.json to include new test scripts. - Enhance README with load testing instructions and safety notes.
Co-authored-by: sombaner <108512532+sombaner@users.noreply.github.com>
Split deploy-aks.yml workflow into separate server and client deployment workflows
Co-authored-by: sombaner <108512532+sombaner@users.noreply.github.com>
Add End-to-End UI & API Tests with Playwright
Co-authored-by: sombaner <108512532+sombaner@users.noreply.github.com>
Fix Memory Leak Tool alignment and button layout issues
…-update-docs-2467 Add workflow: githubnext/agentics/update-docs
Co-authored-by: sombaner <108512532+sombaner@users.noreply.github.com>
Fix workflow permission to enable self-disable on stop-time expiry
Added detailed documentation instructions for the bookstore-supreme repository, including sections on features, workflows, and local setup.
Add detailed documentation instructions for the bookstore-supreme repository in Markdown format.
Updated the Documenter agent with a name and description.
…pin-toystore Update k8s manifests to reference public GHCR images for client and server. Workflows will stamp with commit SHA and deploy to AKS with rollout verification.
Touch manifests to retrigger client and server deploy workflows
Fix sed patterns to use public ghcr.io/${{ github.repository }}/tailspin-{client,server} and deploy SHA tags. No imagePullSecrets required. Trigger AKS deploys post-merge.
Touch k8s manifests to trigger client/server deploy workflows on main; workflows build/push GHCR images, render SHA-tagged manifests, deploy to sbAKSCluster, and report status.
Touch k8s/client-deployment.yaml and k8s/server-deployment.yaml to trigger client/server AKS deploy workflows. Expect GHCR SHA-tag rendering and AKS rollout in ns tail-spin. Capture external IP and update issue #79.
Touch k8s client/server manifests to trigger CI/CD to AKS; ensure GHCR public images and capture rollout + external IP via workflows.
Squash-merge to trigger AKS client/server deploy workflows and keep manifests aligned for SHA-based image rendering.
Auto-merged by SRE agent to trigger client/server AKS deploy workflows and ensure GHCR public images pinned to commit SHA.
Squash-merge to trigger GitHub Actions deploys for Tailspin client/server to AKS; images are ghcr.io public and rendered to commit SHA in CI.
Ensure manifests align with GHCR image paths used in workflows, keep images public without imagePullSecrets, and retrigger client/server AKS deploys via path filters.
Squash-merge to kick off client/server GitHub Actions and AKS deployments.
Touch manifests to retrigger client/server AKS deploy workflows; expect GHCR public images and AKS rollout in tail-spin.
Squash-merge to trigger client/server AKS deploy workflows. Post-merge: monitor Actions, verify AKS rollout in namespace tail-spin, test endpoints, and update issues.
Use public GHCR images; no imagePullSecrets. Trigger AKS deploy workflows for client and server.
* SRE retrigger: 2026-03-08T09:07:44Z (touch) * SRE retrigger: 2026-03-08T09:08:20Z (touch)
Touch client and server deployment manifests to trigger GitHub Actions AKS deploy workflows.
Merge to trigger Build and Deploy Client/Server to AKS workflows; expect rollout to sbAKSCluster ns tail-spin.
Automated touch to k8s manifests to retrigger path-filtered AKS deployments for client and server. No functional changes.
Ensure k8s manifests reference GHCR images; touch manifests to retrigger client/server deploy workflows; images public; no imagePullSecrets.
Ensure k8s manifests use ghcr.io/sombaner/tailspin-toystore images (public, no imagePullSecrets). Merge to trigger client/server AKS deploy workflows.
Squash-merge to trigger client and server AKS deploy workflows; follow-up monitoring and AKS validation will proceed automatically.
Fix typo 'resource' -> 'resources' in server deployment and add post-deploy AKS health-check workflow. This will retrigger client/server deploy workflows and run health validation with auto-issue on failure.
…-12) Squash-merge SRE retrigger to kick off Build and Deploy Client/Server to AKS and subsequent SRE post-deploy health validation.
- Add popularity (Integer) and release_date (Date) fields to Game model - Add sort query parameter to /api/games endpoint (popularity, rating, release_date, title) - Add sort dropdown to GameList.svelte frontend component - Update seed data to generate popularity and release_date values - Add 7 new backend tests for sorting functionality - All 18 tests passing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Entire-Checkpoint: d721e30fd5d5
Entire-Checkpoint: 252622aac6f5
Contributor
There was a problem hiding this comment.
Pull request overview
Adds game list sorting/search plus a memory-leak debug tool, along with significant AKS/Terraform deployment automation and new CI/load-testing assets.
Changes:
- Add
/api/gamesquery-param support forsearch+sort, and extend theGamemodel with popularity/release date fields. - Introduce debug “memory leak” API endpoints + UI tool, and add a backend unit test for those endpoints.
- Add AKS/Terraform infrastructure code, Kubernetes manifests, deployment workflows, and load/perf testing configs.
Reviewed changes
Copilot reviewed 139 out of 160 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
| server/tests/test_debug.py | Adds unit tests for the debug memory-leak endpoints. |
| server/routes/games.py | Adds searching and sorting support to the games listing endpoint. |
| server/routes/debug.py | Introduces debug endpoints that allocate/retain memory and expose stats/clear operations. |
| server/models/game.py | Extends the Game model with popularity and release date fields and updates serialization. |
| server/app.py | Registers the debug blueprint behind an env flag and binds to 0.0.0.0 when run directly. |
| server/Dockerfile | Adds a runtime container image build for the Flask server. |
| server/AGENTS.md | Adds AI agent instructions specific to the server folder. |
| scripts/validate-terraform-backend.sh | Adds a script to validate Azure permissions for Terraform remote state. |
| scripts/start-app.sh | Enables debug endpoints by default when starting locally. |
| loadtest/results.json | Adds a k6 run output JSON (generated artifact). |
| loadtest/k6/tailspin-stress.test.js | Adds a k6 stress test scenario and summary output. |
| loadtest/README.md | Documents how to run k6 load tests and where results are written. |
| k8s/server-deployment.yaml | Adds Kubernetes deployment/service for server (including debug env var). |
| k8s/namespace.yaml | Adds Kubernetes namespace manifest. |
| k8s/client-deployment.yaml | Adds Kubernetes deployment/service for client. |
| infra/variables.tf | Defines Terraform input variables for Azure deployment. |
| infra/terraform.tfvars | Provides concrete Terraform variable values. |
| infra/providers.tf | Configures Terraform providers and OIDC usage for AzureRM. |
| infra/outputs.tf | Exposes key Terraform outputs for AKS/ACR/networking/monitoring. |
| infra/modules/rbac/variables.tf | Declares inputs for RBAC module (AKS identity to ACR pull). |
| infra/modules/rbac/outputs.tf | Exposes RBAC role assignment ID output. |
| infra/modules/rbac/main.tf | Creates AcrPull role assignment for AKS kubelet identity on ACR. |
| infra/modules/networking/variables.tf | Declares inputs for VNet/subnet module. |
| infra/modules/networking/outputs.tf | Exposes VNet and subnet outputs. |
| infra/modules/networking/main.tf | Provisions VNet + AKS delegated subnet. |
| infra/modules/monitoring/variables.tf | Declares inputs for Log Analytics + App Insights module. |
| infra/modules/monitoring/outputs.tf | Exposes monitoring outputs including sensitive keys. |
| infra/modules/monitoring/main.tf | Provisions Log Analytics workspace + Application Insights. |
| infra/modules/aks/variables.tf | Declares inputs for AKS module. |
| infra/modules/aks/outputs.tf | Exposes AKS outputs including kubeconfig and kubelet identity. |
| infra/modules/aks/main.tf | Provisions an AKS cluster with autoscaling and Azure Monitor integration. |
| infra/modules/acr/variables.tf | Declares inputs for ACR module. |
| infra/modules/acr/outputs.tf | Exposes ACR outputs including optional admin creds. |
| infra/modules/acr/main.tf | Provisions Azure Container Registry with optional geo-replication. |
| infra/main.tf | Wires root modules together and defines common tagging. |
| infra/backend.tf | Configures Terraform remote state backend (azurerm). |
| docs/terraform-backend-fix.md | Adds troubleshooting guide for Terraform backend RBAC/OIDC issues. |
| client/src/pages/index.astro | Adds memory leak tool to the home page layout. |
| client/src/components/MemoryLeakTool.svelte | Adds UI for inducing/clearing leak and showing stats. |
| client/src/components/Header.astro | Adds a navigation link to a memory leak tool page. |
| client/src/components/GameList.svelte | Adds search + sort UI and query-param driven fetching. |
| client/src/components/GameDetails.svelte | Adds an in-page support comment UI (client-side only). |
| client/playwright.load.config.ts | Adds a Playwright config for UI load-style checks. |
| client/package.json | Adds a new npm script for the Playwright load config. |
| client/e2e-tests/ui-load.spec.ts | Adds a parallelized UI flow load test. |
| client/e2e-tests/games.spec.ts | Adds e2e tests for search UI and support-comment toggling. |
| client/AGENTS.md | Adds AI agent instructions specific to the client folder. |
| README.md | Adds documentation for AKS/Terraform deployments and test entry points. |
| DEPLOYMENT_INSTRUCTIONS.md | Adds a detailed guide for deploying the app to AKS via GitHub Actions. |
| CHANGES_SUMMARY.md | Adds a summary doc describing an AKS image-name fix approach. |
| AGENTS.md | Adds repo-wide PR/quality checklist guidance. |
| .vscode/settings.json | Updates VS Code chat/agent settings and tool auto-approval settings. |
| .vscode/mcp.json | Adds Azure + Playwright MCP server configs. |
| .specify/templates/spec-template.md | Adds a spec-writing template for speckit workflows. |
| .specify/templates/plan-template.md | Adds an implementation planning template for speckit workflows. |
| .specify/templates/checklist-template.md | Adds a checklist template for speckit workflows. |
| .specify/templates/agent-file-template.md | Adds a template for generating agent guidance files. |
| .specify/scripts/bash/setup-plan.sh | Adds bash script to initialize a plan from template. |
| .specify/scripts/bash/common.sh | Adds shared bash helpers for speckit scripts. |
| .specify/scripts/bash/check-prerequisites.sh | Adds consolidated prereq checking for speckit flows. |
| .github/workflows/weekly-research.md | Adds agentic workflow definition in markdown form. |
| .github/workflows/update-docs.md | Adds agentic “update docs” workflow definition in markdown form. |
| .github/workflows/sre-aks-postdeploy-health.yml | Adds post-deploy AKS health-check workflow that can open issues on failure. |
| .github/workflows/server-deploy-aks.yml | Adds server build/push/deploy workflow to AKS. |
| .github/workflows/issue-triage.md | Adds agentic issue-triage workflow definition in markdown form. |
| .github/workflows/daily-test-improver.md | Adds agentic test-improvement workflow definition in markdown form. |
| .github/workflows/client-deploy-aks.yml | Adds client build/push/deploy workflow to AKS. |
| .github/workflows/ci-issue-trigger.md | Adds agentic CI failure investigator workflow definition in markdown form. |
| .github/workflows/ci-e2e.yml | Adds GitHub Actions workflow to run e2e tests on PRs/pushes. |
| .github/workflows/ci-daily-report.md | Adds agentic daily CI report workflow definition in markdown form. |
| .github/workflows/backup/deploy-aks.yml | Adds a backup combined deploy workflow (build+deploy). |
| .github/workflows/agentics/shared/xpia.md | Adds shared prompt content about XPIA safety. |
| .github/workflows/agentics/shared/tool-refused.md | Adds shared prompt content for tool-refusal handling. |
| .github/workflows/agentics/shared/no-push-to-main.md | Adds shared prompt content forbidding pushes to main. |
| .github/workflows/agentics/shared/include-link.md | Adds shared prompt content for required footer links. |
| .github/workflows/agentics/shared/gh-extra-read-tools.md | Adds shared prompt content listing extra GH read tools/commands. |
| .github/workflows/agentics/shared/gh-extra-pr-tools.md | Adds shared prompt content listing extra GH PR tools/commands. |
| .github/trigger-aks-deploy-20260301-1516-server.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260301-1516-client.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260228-1516-server.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260228-1516-client.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260227-1516-server.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260227-1516-client.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260226-1518-server.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260226-1518-client.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260224-151650Z.txt | Adds a deployment trigger marker file. |
| .github/trigger-aks-deploy-20260223.txt | Adds a deployment trigger marker file. |
| .github/aw/actions-lock.json | Adds an actions lock entry for a pinned actions/github-script SHA. |
| .github/agents/terraform-azure-planning.agent.md | Adds a custom agent for Terraform planning guidance. |
| .github/agents/terraform-azure-implement.agent.md | Adds a custom agent for Terraform implementation guidance. |
| .github/agents/speckit.taskstoissues.agent.md | Adds a custom agent for converting tasks to GitHub issues. |
| .github/agents/speckit.tasks.agent.md | Adds a custom agent for generating tasks.md. |
| .github/agents/speckit.plan.agent.md | Adds a custom agent for generating plan artifacts. |
| .github/agents/speckit.implement.agent.md | Adds a custom agent for executing tasks.md. |
| .github/agents/speckit.constitution.agent.md | Adds a custom agent for maintaining the project constitution. |
| .github/agents/speckit.clarify.agent.md | Adds a custom agent for spec clarification Q&A and spec updates. |
| .github/agents/speckit.analyze.agent.md | Adds a custom agent for cross-artifact consistency analysis. |
| .github/agents/platform-sre-kubernetes.agent.md | Adds a custom agent for SRE/Kubernetes best practices. |
| .github/agents/bicep-plan.agent.md | Adds a custom agent for Azure Bicep planning guidance. |
| .github/agents/bicep-implement.agent.md | Adds a custom agent for Azure Bicep implementation guidance. |
| .github/agents/azure-verified-modules-terraform.agent.md | Adds a custom agent for AVM Terraform workflows. |
| .github/agents/azure-verified-modules-bicep.agent.md | Adds a custom agent for AVM Bicep workflows. |
| .github/agents/Documenter.agent.md | Adds a documentation-focused custom agent file. |
| .github/skills/SKILL.md | Adds a GitHub Skills instruction for listing assigned PRs. |
| .github/prompts/speckit.taskstoissues.prompt.md | Adds a minimal prompt file for speckit task-to-issues. |
| .github/prompts/speckit.tasks.prompt.md | Adds a minimal prompt file for speckit tasks. |
| .github/prompts/speckit.specify.prompt.md | Adds a minimal prompt file for speckit specify. |
| .github/prompts/speckit.plan.prompt.md | Adds a minimal prompt file for speckit plan. |
| .github/prompts/speckit.implement.prompt.md | Adds a minimal prompt file for speckit implement. |
| .github/prompts/speckit.constitution.prompt.md | Adds a minimal prompt file for speckit constitution. |
| .github/prompts/speckit.clarify.prompt.md | Adds a minimal prompt file for speckit clarify. |
| .github/prompts/speckit.checklist.prompt.md | Adds a minimal prompt file for speckit checklist. |
| .github/prompts/speckit.analyze.prompt.md | Adds a minimal prompt file for speckit analyze. |
| .github/hooks/entire.json | Adds Entire CLI hook configuration. |
| .gitattributes | Marks certain workflow lock files as generated and uses merge strategy. |
| .entire/settings.json | Adds Entire tool settings. |
| .entire/.gitignore | Ignores Entire tool runtime artifacts. |
You can also share your feedback on Copilot code review. Take the survey.
Comment on lines
+12
to
+13
| self.client = self.app.test_client() | ||
|
|
Comment on lines
+17
to
+27
| @debug_bp.route('/api/debug/leak', methods=['POST', 'GET']) | ||
| def induce_leak() -> Tuple[Response, int] | Response: | ||
| """ | ||
| Induce a controlled memory leak by allocating and retaining bytearrays in a module-level bucket. | ||
|
|
||
| Query/body params: | ||
| - mb: megabytes per allocation (default: 1) | ||
| - count: number of allocations to retain (default: 1) | ||
|
|
||
| Returns current stats (chunks and totalBytes). | ||
| """ |
Comment on lines
+42
to
+45
| bytes_per = mb * 1024 * 1024 | ||
| for _ in range(count): | ||
| # Allocate and retain | ||
| _LEAK_BUCKET.append(bytearray(bytes_per)) |
| - name: PYTHONUNBUFFERED | ||
| value: "1" | ||
| - name: ENABLE_DEBUG_ENDPOINTS | ||
| value: "true" |
| } | ||
| export FLASK_DEBUG=1 | ||
| export FLASK_PORT=5100 | ||
| export ENABLE_DEBUG_ENDPOINTS=true |
Comment on lines
+1
to
+19
| FROM python:3.11-slim AS runtime | ||
|
|
||
| ENV PYTHONDONTWRITEBYTECODE=1 \ | ||
| PYTHONUNBUFFERED=1 | ||
|
|
||
| WORKDIR /app/server | ||
|
|
||
| # Install build essentials (in case some deps need compilation) | ||
| RUN apt-get update && apt-get install -y --no-install-recommends \ | ||
| build-essential \ | ||
| && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| # Copy server requirements and install | ||
| COPY server/requirements.txt /app/server/requirements.txt | ||
| RUN pip install --no-cache-dir -r requirements.txt | ||
|
|
||
| # Copy server code | ||
| COPY server/ /app/server/ | ||
|
|
| --- | ||
|
|
||
| ## `AGENTS.md` for **Server** (`server/AGENTS.md`) | ||
|
|
Comment on lines
+9
to
+17
| terraform { | ||
| backend "azurerm" { | ||
| resource_group_name = "rg-terraform-state" | ||
| storage_account_name = "sttfstateprod" # Update this with your storage account name | ||
| container_name = "tfstate" | ||
| key = "tailspin-aks.tfstate" | ||
| use_oidc = true | ||
| } | ||
| } |
Comment on lines
+18
to
+20
| let searchQuery = ''; | ||
| let sortOption = ''; | ||
| let searchTimeout: ReturnType<typeof setTimeout> | null = null; |
Comment on lines
+51
to
+56
| const handleSearch = () => { | ||
| if (searchTimeout) clearTimeout(searchTimeout); | ||
| searchTimeout = setTimeout(() => { | ||
| fetchGames(searchQuery, sortOption); | ||
| }, 300); | ||
| }; |
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.
Entire-Checkpoint: 252622aac6f5