Skip to content

ci(platform): Improve end-to-end CI & reduce its cost - #12437

Merged
Pwuts merged 8 commits into
devfrom
pwuts/merge-frontend-cis
Mar 16, 2026
Merged

ci(platform): Improve end-to-end CI & reduce its cost#12437
Pwuts merged 8 commits into
devfrom
pwuts/merge-frontend-cis

Conversation

@Pwuts

@Pwuts Pwuts commented Mar 16, 2026

Copy link
Copy Markdown
Member

Our CI costs are skyrocketing, most of it because of platform-fullstack-ci.yml. The types job currently uses in a big-boi runner (= expensive), but doesn't need to.
Additionally, the "end-to-end tests" job is currently in platform-frontend-ci.yml instead of platform-fullstack-ci.yml, causing it not to run on backend changes (which it should).

Changes 🏗️

  • Simplify check-api-types job (renamed from types) and make it use regular ubuntu-latest runner
    • Export API schema from backend through CLI (instead of spinning it up in docker)
  • Fix dependency caching in platform-fullstack-ci.yml (based on recent improvements in platform-frontend-ci.yml)
  • Move e2e_tests job to platform-fullstack-ci.yml

Out-of-scope but necessary:

  • Eliminate module-level init of OpenAI client in backend.copilot.service

Checklist 📋

For code changes:

  • I have clearly listed my changes in the PR description
  • I have made a test plan
  • I have tested my changes according to the test plan:
    • CI

@Pwuts
Pwuts requested a review from a team as a code owner March 16, 2026 13:08
@github-project-automation github-project-automation Bot moved this to 🆕 Needs initial review in AutoGPT development kanban Mar 16, 2026
@coderabbitai

coderabbitai Bot commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Removed E2E from the frontend CI workflow and consolidated CI into a renames/expanded full-stack workflow (backend Python/Poetry/Prisma, OpenAPI export, Orval client generation, pnpm caching) and added lazy-init getters for Langfuse/OpenAI clients in copilot services.

Changes

Cohort / File(s) Summary
Frontend workflow edits
​.github/workflows/platform-frontend-ci.yml
Removed the end-to-end (e2e_test) job and all associated steps (Docker Buildx/compose, Supabase startup, migrations, E2E data cache/restore, Playwright setup, and artifact reporting).
Full-stack CI additions & restructure
​.github/workflows/platform-fullstack-ci.yml
Renamed workflow to "Full-stack CI"; consolidated frontend Node/pnpm cache flow; added backend setup (Python, Poetry, dependency cache, Prisma client generation); added OpenAPI export/format/validation and Orval API-client generation; introduced a new e2e_test job with Docker build, Supabase orchestration, migrations, data caching, Playwright runs, and artifact uploads.
Copilot lazy-init (service)
autogpt_platform/backend/backend/copilot/service.py
Replaced direct Langfuse/OpenAI client instantiation with lazy-accessors (_get_openai_client(), _get_langfuse()); updated internal calls to use getters (no public API changes).
Copilot baseline updates
autogpt_platform/backend/backend/copilot/baseline/service.py
Removed exported client and replaced usages with _get_openai_client(); updated imports and call sites to use the lazy getter.

Sequence Diagram(s)

sequenceDiagram
  participant Actions as GitHub Actions
  participant Backend as Backend (Python / Poetry / Prisma)
  participant Frontend as Frontend (pnpm / Orval / TS)
  participant Docker as Docker Buildx / Compose
  participant Supabase as Supabase (DB/Auth)
  participant Playwright as Playwright runner

  rect rgba(200,220,255,0.5)
    Actions->>Backend: set up Python & Poetry\ninstall deps, generate Prisma client\nexport OpenAPI schema to frontend path
    Backend-->>Actions: write OpenAPI schema
  end

  rect rgba(200,255,200,0.5)
    Actions->>Frontend: install deps (pnpm cache)\nformat/validate OpenAPI, generate API client (Orval)\nrun TS checks
  end

  rect rgba(255,230,200,0.5)
    Actions->>Docker: build images (Buildx) with cache
    Docker->>Supabase: start DB/Auth services (compose)
    Docker->>Backend: start backend service
    Docker->>Frontend: start frontend service
    Supabase->>Actions: run migrations, seed or restore data
  end

  rect rgba(255,200,220,0.5)
    Actions->>Playwright: run E2E tests against running stack
    Playwright->>Actions: upload artifacts, reports, and logs
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • Swiftyos
  • Bentlybro
  • kcze

Poem

🐰 I nudged lazy clients awake with care,
I hopped through YAML, tests, and Docker air.
Schemas danced, containers humbly spun,
Playwright applauded when the tests were done.
Hooray — a CI carrot, neatly won!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main objective of the PR: improving CI efficiency and reducing costs by optimizing the platform CI workflows.
Description check ✅ Passed The PR description is directly related to the changeset, detailing CI workflow modifications and backend client initialization changes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pwuts/merge-frontend-cis
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can use your project's `ruff` configuration to improve the quality of Python code reviews.

Add a Ruff configuration file to your project to customize how CodeRabbit runs ruff.

@github-actions

github-actions Bot commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

🔍 PR Overlap Detection

This check compares your PR against all other open PRs targeting the same branch to detect potential merge conflicts early.

🔴 Merge Conflicts Detected

The following PRs have been tested and will have merge conflicts if merged after this PR. Consider coordinating with the authors.

🟢 Low Risk — File Overlap Only

These PRs touch the same files but different sections (click to expand)

Summary: 2 conflict(s), 0 medium risk, 4 low risk (out of 6 PRs with file overlap)


Auto-generated on push. Ignores: openapi.json, lock files.

Comment thread .github/workflows/platform-fullstack-ci.yml Outdated

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🧹 Nitpick comments (2)
.github/workflows/platform-fullstack-ci.yml (2)

274-276: Redundant continue-on-error: false.

This is the default behavior for GitHub Actions steps and can be removed. However, keeping it explicitly documents the intent that test failures should fail the job.

♻️ Optional cleanup
       - name: Run Playwright tests
         run: pnpm test:no-build
-        continue-on-error: false
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/platform-fullstack-ci.yml around lines 274 - 276, Remove
the redundant explicit setting continue-on-error: false from the GitHub Actions
step named "Run Playwright tests" since false is the default; delete the
continue-on-error property (or alternatively replace it with a comment
explaining intent) so the workflow is cleaner while preserving that test
failures should fail the job.

133-133: Consider adding actionlint.yaml to document the big-boi self-hosted runner.

No actionlint configuration currently exists. The big-boi runner is flagged as unknown by static analysis tools. Adding a .github/actionlint.yaml file to document this custom runner label would suppress warnings and make the configuration explicit for future maintainers.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/platform-fullstack-ci.yml at line 133, Add an actionlint
configuration file named actionlint.yaml that documents the custom self-hosted
runner label "big-boi" referenced in platform-fullstack-ci.yml so actionlint
recognizes it; specifically, create an actionlint config that registers the
"big-boi" runner label (under the actionlint "runners" or equivalent setting) to
suppress unknown-runner warnings and commit that config alongside the workflow.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Around line 77-79: Rename the misleading GitHub Actions step name "Set up
Frontend - Export OpenAPI schema" to reflect that it runs in the backend; update
the step's name field to something like "Set up Backend - Export OpenAPI schema"
or "Export backend OpenAPI schema" so it matches the working-directory
(autogpt_platform/backend) and the command (poetry run export-api-schema
--output ../frontend/src/app/api/openapi.json).
- Around line 184-189: The cache key for the e2e-data-cache step (id:
e2e-data-cache, uses: actions/cache@v5) incorrectly hashes
'.github/workflows/platform-frontend-ci.yml'; update the key expression so the
hashFiles list references the current workflow file
('.github/workflows/platform-fullstack-ci.yml') instead of the frontend CI file
so the E2E cache is invalidated when this workflow changes.

---

Nitpick comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Around line 274-276: Remove the redundant explicit setting continue-on-error:
false from the GitHub Actions step named "Run Playwright tests" since false is
the default; delete the continue-on-error property (or alternatively replace it
with a comment explaining intent) so the workflow is cleaner while preserving
that test failures should fail the job.
- Line 133: Add an actionlint configuration file named actionlint.yaml that
documents the custom self-hosted runner label "big-boi" referenced in
platform-fullstack-ci.yml so actionlint recognizes it; specifically, create an
actionlint config that registers the "big-boi" runner label (under the
actionlint "runners" or equivalent setting) to suppress unknown-runner warnings
and commit that config alongside the workflow.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1608d51c-3e15-4410-b9f4-bc780b17caa8

📥 Commits

Reviewing files that changed from the base of the PR and between 3f653e6 and f28021c.

📒 Files selected for processing (2)
  • .github/workflows/platform-frontend-ci.yml
  • .github/workflows/platform-fullstack-ci.yml
💤 Files with no reviewable changes (1)
  • .github/workflows/platform-frontend-ci.yml
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Seer Code Review
  • GitHub Check: end-to-end tests
  • GitHub Check: Check PR Status
  • GitHub Check: Analyze (python)
🧰 Additional context used
🧠 Learnings (22)
📓 Common learnings
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12284
File: autogpt_platform/frontend/src/app/api/openapi.json:11897-11900
Timestamp: 2026-03-04T23:58:18.476Z
Learning: Repo: Significant-Gravitas/AutoGPT — PR `#12284`
Backend/frontend OpenAPI codegen convention: In backend/api/features/store/model.py, the StoreSubmission and StoreSubmissionAdminView models define submitted_at: datetime | None, changes_summary: str | None, and instructions: str | None with no default. This is intentional to produce “required but nullable” fields in OpenAPI (properties appear in required[] and use anyOf [type, null]). This matches Prisma’s submittedAt DateTime? and changesSummary String?. Do not flag this as a required/nullable mismatch.
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Place E2E tests (Playwright) in a centralized location for critical user journeys
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for flows requiring real browser APIs (clipboard, downloads) or cross-page navigation
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for payment or sensitive transactions requiring a real browser
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/src/**/*[Ww]orkflow*/**/*.{ts,tsx} : Use xyflow/react for visual graph editor implementation in the Workflow Builder

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm format` to auto-fix formatting issues before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-03-04T23:58:18.476Z
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12284
File: autogpt_platform/frontend/src/app/api/openapi.json:11897-11900
Timestamp: 2026-03-04T23:58:18.476Z
Learning: Repo: Significant-Gravitas/AutoGPT — PR `#12284`
Backend/frontend OpenAPI codegen convention: In backend/api/features/store/model.py, the StoreSubmission and StoreSubmissionAdminView models define submitted_at: datetime | None, changes_summary: str | None, and instructions: str | None with no default. This is intentional to produce “required but nullable” fields in OpenAPI (properties appear in required[] and use anyOf [type, null]). This matches Prisma’s submittedAt DateTime? and changesSummary String?. Do not flag this as a required/nullable mismatch.

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,stories.ts} : Add/update Storybook stories for UI components in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use generated API hooks from '@/app/api/__generated__/endpoints/' instead of deprecated 'BackendAPI' or 'src/lib/autogpt-server-api/*'

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.{test,spec}.{ts,tsx} : Run `pnpm test` or `pnpm test-ui` for frontend Playwright tests

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Always run 'pnpm format' for formatting and linting code in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/backend/**/*test*.py : Run `poetry run test` for backend testing (runs pytest with docker based postgres + prisma)

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/backend/schema.prisma : Run database migrations with 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes in backend

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Always run 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes before backend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Use Node.js 21+ with pnpm package manager for frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Place E2E tests (Playwright) in a centralized location for critical user journeys

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for flows requiring real browser APIs (clipboard, downloads) or cross-page navigation

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for payment or sensitive transactions requiring a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
🪛 actionlint (1.7.11)
.github/workflows/platform-fullstack-ci.yml

[error] 133-133: label "big-boi" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (3)
.github/workflows/platform-fullstack-ci.yml (3)

25-43: LGTM!

The setup job correctly configures Node.js with pnpm caching, using the lock file path for cache dependency. The approach of populating cache in a separate job for downstream jobs to reuse is efficient.


121-129: LGTM!

The conditional logic ensures the API client generation and TypeScript checks run even when API schema changes are detected. This provides better developer experience by surfacing all errors at once rather than failing early.


191-257: LGTM!

The E2E test orchestration is well-structured:

  • Database and auth services start first with health checks
  • Migrations run before data loading
  • Cache restore uses session_replication_role = 'replica' to disable triggers correctly
  • Data creation includes proper error handling and dumps both auth.users and platform schema

The timeout-based health checks prevent indefinite hangs while allowing services time to initialize.

Comment thread .github/workflows/platform-fullstack-ci.yml Outdated
Comment thread .github/workflows/platform-fullstack-ci.yml Outdated

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

♻️ Duplicate comments (1)
.github/workflows/platform-fullstack-ci.yml (1)

191-197: ⚠️ Potential issue | 🟠 Major

E2E cache key still references the old frontend workflow file.

Line 196 hashes .github/workflows/platform-frontend-ci.yml, so cache invalidation won’t track changes in this workflow where E2E now lives.

🐛 Proposed fix
-          key: e2e-test-data-${{ hashFiles('autogpt_platform/backend/test/e2e_test_data.py', 'autogpt_platform/backend/migrations/**', '.github/workflows/platform-frontend-ci.yml') }}
+          key: e2e-test-data-${{ hashFiles('autogpt_platform/backend/test/e2e_test_data.py', 'autogpt_platform/backend/migrations/**', '.github/workflows/platform-fullstack-ci.yml') }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/platform-fullstack-ci.yml around lines 191 - 197, The
cache key in the e2e-data-cache step references the old workflow file
('.github/workflows/platform-frontend-ci.yml'), so update the hashFiles argument
used in the key for the e2e-data-cache action (step id: e2e-data-cache, key:
e2e-test-data-${{ hashFiles(...) }}) to include the correct workflow where E2E
now lives (replace the old file with
'.github/workflows/platform-fullstack-ci.yml' or the actual workflow file that
contains the E2E job) so cache invalidation tracks changes to the current E2E
workflow.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Line 140: The workflow uses a nonstandard runner label "runs-on: big-boi"
which will fail actionlint; update the runs-on entry in the workflow to a valid
value: either replace runs-on: big-boi with a GitHub-hosted runner like runs-on:
ubuntu-latest, or mark it as a self-hosted runner by changing to runs-on:
[self-hosted, big-boi], or alternatively add an actionlint whitelist in
.github/actionlint.yaml to allow the custom label "big-boi".
- Around line 182-183: The hashFiles calls used for --backend-hash and
--frontend-hash are passing directory-only paths which match no files; update
the hashFiles arguments (the hashFiles function invocations for --backend-hash
and --frontend-hash) to include appropriate glob patterns (e.g., **/* or **/*.*)
for the backend source dir (the argument containing
autogpt_platform/backend/backend) and frontend source dir (the argument
containing autogpt_platform/frontend/src) so the function actually hashes all
relevant files and cache keys change when sources change.

---

Duplicate comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Around line 191-197: The cache key in the e2e-data-cache step references the
old workflow file ('.github/workflows/platform-frontend-ci.yml'), so update the
hashFiles argument used in the key for the e2e-data-cache action (step id:
e2e-data-cache, key: e2e-test-data-${{ hashFiles(...) }}) to include the correct
workflow where E2E now lives (replace the old file with
'.github/workflows/platform-fullstack-ci.yml' or the actual workflow file that
contains the E2E job) so cache invalidation tracks changes to the current E2E
workflow.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2c468beb-88e4-4e87-b0cd-add862ab1ccc

📥 Commits

Reviewing files that changed from the base of the PR and between f28021c and e1c6afd.

📒 Files selected for processing (1)
  • .github/workflows/platform-fullstack-ci.yml
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: check API types
  • GitHub Check: end-to-end tests
  • GitHub Check: Seer Code Review
  • GitHub Check: Check PR Status
  • GitHub Check: Analyze (python)
🧰 Additional context used
🧠 Learnings (21)
📓 Common learnings
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/backend/schema.prisma : Run database migrations with 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes in backend
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*_test.py : Always review snapshot changes with `git diff` before committing when updating snapshots with `poetry run pytest --snapshot-update`
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12284
File: autogpt_platform/frontend/src/app/api/openapi.json:11897-11900
Timestamp: 2026-03-04T23:58:18.476Z
Learning: Repo: Significant-Gravitas/AutoGPT — PR `#12284`
Backend/frontend OpenAPI codegen convention: In backend/api/features/store/model.py, the StoreSubmission and StoreSubmissionAdminView models define submitted_at: datetime | None, changes_summary: str | None, and instructions: str | None with no default. This is intentional to produce “required but nullable” fields in OpenAPI (properties appear in required[] and use anyOf [type, null]). This matches Prisma’s submittedAt DateTime? and changesSummary String?. Do not flag this as a required/nullable mismatch.
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/backend/**/*test*.py : Run `poetry run test` for backend testing (runs pytest with docker based postgres + prisma)
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*.{py,txt} : Use `poetry run` prefix for all Python commands, including testing, linting, formatting, and migrations
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Run 'poetry run test' before committing backend changes to ensure all tests pass
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Place E2E tests (Playwright) in a centralized location for critical user journeys
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for flows requiring real browser APIs (clipboard, downloads) or cross-page navigation
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.{test,spec}.{ts,tsx} : Run `pnpm test` or `pnpm test-ui` for frontend Playwright tests
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Always run 'pnpm dev' before 'pnpm test' for frontend E2E tests since Playwright requires a running instance
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for payment or sensitive transactions requiring a real browser
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/backend/schema.prisma : Run database migrations with 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes in backend

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:20.508Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*.{py,txt} : Use `poetry run` prefix for all Python commands, including testing, linting, formatting, and migrations

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/backend/**/*test*.py : Run `poetry run test` for backend testing (runs pytest with docker based postgres + prisma)

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Always run 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes before backend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:20.508Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*_test.py : Always review snapshot changes with `git diff` before committing when updating snapshots with `poetry run pytest --snapshot-update`

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.{test,spec}.{ts,tsx} : Run `pnpm test` or `pnpm test-ui` for frontend Playwright tests

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Always run 'pnpm format' for formatting and linting code in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm format` to auto-fix formatting issues before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T17:02:34.195Z
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12211
File: .pre-commit-config.yaml:160-179
Timestamp: 2026-02-26T17:02:34.195Z
Learning: In `.pre-commit-config.yaml`, the `sync-api-types` hook intentionally uses the broad file pattern `^autogpt_platform/backend/` (not narrowed to just `backend/api/`) because the OpenAPI schema is generated by importing the FastAPI app and depends on Pydantic models across many directories: `backend/data/`, `backend/blocks/`, `backend/copilot/`, `backend/integrations/`, and `backend/util/`. Narrowing would risk missing schema changes and causing frontend type desync.

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Use Node.js 21+ with pnpm package manager for frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Place E2E tests (Playwright) in a centralized location for critical user journeys

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for flows requiring real browser APIs (clipboard, downloads) or cross-page navigation

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for payment or sensitive transactions requiring a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
🪛 actionlint (1.7.11)
.github/workflows/platform-fullstack-ci.yml

[error] 140-140: label "big-boi" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (2)
.github/workflows/platform-fullstack-ci.yml (2)

58-137: Good CI flow for schema export → client generation → type check.

This sequence is well-structured and aligns backend schema changes with frontend type validation in one job.


84-86: Step name is still misleading for a backend command.

Line 84 says “Set up Frontend”, but the step runs in autogpt_platform/backend and executes a backend CLI.

🔧 Proposed rename
-      - name: Set up Frontend - Export OpenAPI schema
+      - name: Set up Backend - Export OpenAPI schema
         working-directory: autogpt_platform/backend
         run: poetry run export-api-schema --output ../frontend/src/app/api/openapi.json

Comment thread .github/workflows/platform-fullstack-ci.yml
Comment thread .github/workflows/platform-fullstack-ci.yml Outdated
@Pwuts
Pwuts requested a review from a team as a code owner March 16, 2026 13:26
@Pwuts
Pwuts requested review from Bentlybro and Swiftyos and removed request for a team March 16, 2026 13:26
@github-actions github-actions Bot added the platform/backend AutoGPT Platform - Back end label Mar 16, 2026

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

♻️ Duplicate comments (1)
.github/workflows/platform-fullstack-ci.yml (1)

140-140: ⚠️ Potential issue | 🟠 Major

Resolve the big-boi runner label for actionlint.

Line 140 still trips actionlint; custom runner labels need repo-side configuration there or the label is treated as unknown. (github.com)

Quick verification: inspect whether the repo already whitelists big-boi for actionlint. If no config is found, this is still unresolved.

#!/bin/bash
set -euo pipefail

echo "=== workflow snippet ==="
sed -n '136,144p' .github/workflows/platform-fullstack-ci.yml

echo
echo "=== actionlint config files ==="
configs=$(fd -HI 'actionlint\.ya?ml$' .)
printf '%s\n' "$configs"

if [ -n "$configs" ]; then
  echo
  echo "=== actionlint config contents ==="
  printf '%s\n' "$configs" | xargs -I{} sh -c 'echo "--- {} ---"; sed -n "1,200p" "{}"'
fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/platform-fullstack-ci.yml at line 140, The workflow uses a
non-standard runner label "big-boi" in the runs-on field which trips actionlint;
either replace that runs-on value with a supported GitHub-hosted runner (e.g.,
ubuntu-latest) or add/modify your actionlint config to whitelist the custom
label "big-boi" so actionlint recognizes it—inspect the
.github/workflows/platform-fullstack-ci.yml runs-on: big-boi entry and then
either change that value or update your actionlint configuration file
(actionlint.yml / actionlint.yaml) to include "big-boi" in the allowed runner
labels.
🧹 Nitpick comments (1)
autogpt_platform/backend/backend/copilot/baseline/service.py (1)

40-45: Add a regression smoke test for the lazy-import path.

This change is what keeps schema export / CLI imports from touching OpenAI configuration again. A small import-only test for backend.copilot.service / backend.copilot.baseline.service with OpenAI env vars unset would make that guarantee much harder to regress.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@autogpt_platform/backend/backend/copilot/baseline/service.py` around lines 40
- 45, Add a regression smoke test that imports backend.copilot.service and
backend.copilot.baseline.service with OpenAI-related environment variables
cleared to ensure the modules perform lazy-imports and don't touch OpenAI
configuration at import time; implement a test that unsets/clears OPENAI_API_KEY
and similar vars, imports (or importlib.reloads) the two modules (referencing
module names backend.copilot.service and backend.copilot.baseline.service and
symbols like _get_openai_client, config, _build_system_prompt), and asserts the
import completes without raising exceptions or initializing the OpenAI client
(no calls to _get_openai_client or config side-effects during import).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Around line 63-69: The workflow's push/pull_request path filters are missing
the helper scripts path, so changes to .github/workflows/scripts/* won't trigger
CI; update the workflow trigger configuration for both push and pull_request to
include the pattern ".github/workflows/scripts/**" (or the exact glob used
elsewhere) so that edits to those helper scripts will run this workflow; ensure
the same pattern is added for both trigger blocks referenced near the Poetry
install step and the other job (the blocks that currently depend on those
scripts).
- Around line 128-136: Add a post-generation commit-check step after the
generate-api-client step to ensure the regenerated API client is committed:
after the pnpm orval (or pnpm generate:api) invocation in the job with id
generate-api-client, run a git diff --exit-code (or equivalent check) and fail
the job if there are unstaged changes so CI cannot pass with stale committed API
hooks; update the workflow to make this check conditional with the same success
gating as generate-api-client so it runs immediately after generation and
prevents the subsequent pnpm types step from validating against uncommitted
generated code.

---

Duplicate comments:
In @.github/workflows/platform-fullstack-ci.yml:
- Line 140: The workflow uses a non-standard runner label "big-boi" in the
runs-on field which trips actionlint; either replace that runs-on value with a
supported GitHub-hosted runner (e.g., ubuntu-latest) or add/modify your
actionlint config to whitelist the custom label "big-boi" so actionlint
recognizes it—inspect the .github/workflows/platform-fullstack-ci.yml runs-on:
big-boi entry and then either change that value or update your actionlint
configuration file (actionlint.yml / actionlint.yaml) to include "big-boi" in
the allowed runner labels.

---

Nitpick comments:
In `@autogpt_platform/backend/backend/copilot/baseline/service.py`:
- Around line 40-45: Add a regression smoke test that imports
backend.copilot.service and backend.copilot.baseline.service with OpenAI-related
environment variables cleared to ensure the modules perform lazy-imports and
don't touch OpenAI configuration at import time; implement a test that
unsets/clears OPENAI_API_KEY and similar vars, imports (or importlib.reloads)
the two modules (referencing module names backend.copilot.service and
backend.copilot.baseline.service and symbols like _get_openai_client, config,
_build_system_prompt), and asserts the import completes without raising
exceptions or initializing the OpenAI client (no calls to _get_openai_client or
config side-effects during import).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 38c6539b-0a2b-41c4-99f7-c2ac64df5ece

📥 Commits

Reviewing files that changed from the base of the PR and between cefd000 and e6bfa88.

📒 Files selected for processing (2)
  • .github/workflows/platform-fullstack-ci.yml
  • autogpt_platform/backend/backend/copilot/baseline/service.py
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: check API types
  • GitHub Check: Seer Code Review
  • GitHub Check: end-to-end tests
  • GitHub Check: test (3.13)
  • GitHub Check: test (3.11)
  • GitHub Check: test (3.12)
  • GitHub Check: Analyze (python)
  • GitHub Check: Check PR Status
🧰 Additional context used
📓 Path-based instructions (4)
autogpt_platform/backend/**/*.py

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/backend/**/*.py: Use Python 3.11 (required; managed by Poetry via pyproject.toml) for backend development
Always run 'poetry run format' (Black + isort) before linting in backend development
Always run 'poetry run lint' (ruff) after formatting in backend development

Files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
autogpt_platform/backend/**/*.{py,txt}

📄 CodeRabbit inference engine (autogpt_platform/backend/CLAUDE.md)

Use poetry run prefix for all Python commands, including testing, linting, formatting, and migrations

Files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
autogpt_platform/backend/backend/**/*.py

📄 CodeRabbit inference engine (autogpt_platform/backend/CLAUDE.md)

Use Prisma ORM for database operations in PostgreSQL with pgvector for embeddings

Files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
autogpt_platform/**/*.py

📄 CodeRabbit inference engine (AGENTS.md)

Format Python code with poetry run format

Files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
🧠 Learnings (30)
📓 Common learnings
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12284
File: autogpt_platform/frontend/src/app/api/openapi.json:11897-11900
Timestamp: 2026-03-04T23:58:18.476Z
Learning: Repo: Significant-Gravitas/AutoGPT — PR `#12284`
Backend/frontend OpenAPI codegen convention: In backend/api/features/store/model.py, the StoreSubmission and StoreSubmissionAdminView models define submitted_at: datetime | None, changes_summary: str | None, and instructions: str | None with no default. This is intentional to produce “required but nullable” fields in OpenAPI (properties appear in required[] and use anyOf [type, null]). This matches Prisma’s submittedAt DateTime? and changesSummary String?. Do not flag this as a required/nullable mismatch.
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work
Learnt from: majdyz
Repo: Significant-Gravitas/AutoGPT PR: 12213
File: autogpt_platform/frontend/src/app/api/openapi.json:9983-9995
Timestamp: 2026-02-27T15:59:00.370Z
Learning: Repo: Significant-Gravitas/AutoGPT PR: 12213 — Backend/frontend OpenAPI codegen
Learning: For MCP schema models, required OpenAPI fields must have no defaults in Pydantic. Specifically, MCPToolInfo.input_schema must be required (no Field(default_factory=dict)) so openapi.json emits it in "required", ensuring generated TS types treat input_schema as non-optional.
Learnt from: majdyz
Repo: Significant-Gravitas/AutoGPT PR: 12213
File: autogpt_platform/frontend/src/app/api/openapi.json:9983-9995
Timestamp: 2026-02-27T15:59:00.370Z
Learning: Repo: Significant-Gravitas/AutoGPT PR: 12213 — OpenAPI/codegen
Learning: Ensuring a field is required in generated TS types needs two sides: (1) no default value on the Pydantic field, and (2) the OpenAPI model's "required" array must list it. For MCPToolInfo, making input_schema required in OpenAPI and removing Field(default_factory=dict) in the backend prevents optional typing drift.
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Run 'poetry run test' before committing backend changes to ensure all tests pass
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/backend/schema.prisma : Run database migrations with 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes in backend
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Run `pnpm types` to check for type errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx} : Regenerate API hooks with 'pnpm generate:api' after backend OpenAPI spec changes in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm lint` to check for lint errors and fix any that appear before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Run `pnpm format` to auto-fix formatting issues before completing work

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-03-04T23:58:18.476Z
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12284
File: autogpt_platform/frontend/src/app/api/openapi.json:11897-11900
Timestamp: 2026-03-04T23:58:18.476Z
Learning: Repo: Significant-Gravitas/AutoGPT — PR `#12284`
Backend/frontend OpenAPI codegen convention: In backend/api/features/store/model.py, the StoreSubmission and StoreSubmissionAdminView models define submitted_at: datetime | None, changes_summary: str | None, and instructions: str | None with no default. This is intentional to produce “required but nullable” fields in OpenAPI (properties appear in required[] and use anyOf [type, null]). This matches Prisma’s submittedAt DateTime? and changesSummary String?. Do not flag this as a required/nullable mismatch.

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,spec.ts,test.ts} : Add Storybook stories for new components and Playwright tests for E2E scenarios

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{stories.tsx,stories.ts} : Add/update Storybook stories for UI components in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{tsx,ts} : Use generated API hooks from '@/app/api/__generated__/endpoints/' instead of deprecated 'BackendAPI' or 'src/lib/autogpt-server-api/*'

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/src/**/*[Ww]orkflow*/**/*.{ts,tsx} : Use xyflow/react for visual graph editor implementation in the Workflow Builder

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.stories.{ts,tsx} : Add Storybook stories for new components and Playwright for E2E testing

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/backend/schema.prisma : Run database migrations with 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes in backend

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:20.508Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*.{py,txt} : Use `poetry run` prefix for all Python commands, including testing, linting, formatting, and migrations

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-27T15:59:00.370Z
Learnt from: majdyz
Repo: Significant-Gravitas/AutoGPT PR: 12213
File: autogpt_platform/frontend/src/app/api/openapi.json:9983-9995
Timestamp: 2026-02-27T15:59:00.370Z
Learning: Repo: Significant-Gravitas/AutoGPT PR: 12213 — Backend/frontend OpenAPI codegen
Learning: For MCP schema models, required OpenAPI fields must have no defaults in Pydantic. Specifically, MCPToolInfo.input_schema must be required (no Field(default_factory=dict)) so openapi.json emits it in "required", ensuring generated TS types treat input_schema as non-optional.

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:20.508Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/backend/CLAUDE.md:0-0
Timestamp: 2026-02-04T16:50:20.508Z
Learning: Applies to autogpt_platform/backend/**/*_test.py : Always review snapshot changes with `git diff` before committing when updating snapshots with `poetry run pytest --snapshot-update`

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Always run 'poetry run prisma migrate dev' and 'poetry run prisma generate' after schema changes before backend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/backend/**/*test*.py : Run `poetry run test` for backend testing (runs pytest with docker based postgres + prisma)

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Run 'poetry run test' before committing backend changes to ensure all tests pass

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:50:51.495Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-04T16:50:51.495Z
Learning: Applies to autogpt_platform/frontend/**/*.{test,spec}.{ts,tsx} : Run `pnpm test` or `pnpm test-ui` for frontend Playwright tests

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Always run 'pnpm format' for formatting and linting code in frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T21:29:44.105Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/CLAUDE.md:0-0
Timestamp: 2026-02-26T21:29:44.105Z
Learning: Applies to autogpt_platform/frontend/**/*.{spec.ts,test.ts,stories.tsx} : Use Playwright for E2E testing and Storybook for component development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T17:02:34.195Z
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12211
File: .pre-commit-config.yaml:160-179
Timestamp: 2026-02-26T17:02:34.195Z
Learning: In `.pre-commit-config.yaml`, the `sync-api-types` hook intentionally uses the broad file pattern `^autogpt_platform/backend/` (not narrowed to just `backend/api/`) because the OpenAPI schema is generated by importing the FastAPI app and depends on Pydantic models across many directories: `backend/data/`, `backend/blocks/`, `backend/copilot/`, `backend/integrations/`, and `backend/util/`. Narrowing would risk missing schema changes and causing frontend type desync.

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-04T16:49:42.490Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-02-04T16:49:42.490Z
Learning: Applies to autogpt_platform/frontend/**/*.{ts,tsx,js,jsx} : Use Node.js 21+ with pnpm package manager for frontend development

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Place E2E tests (Playwright) in a centralized location for critical user journeys

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for authentication flows (login, signup, logout) that MUST work in a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for flows requiring real browser APIs (clipboard, downloads) or cross-page navigation

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-01-28T18:29:34.362Z
Learnt from: CR
Repo: Significant-Gravitas/AutoGPT PR: 0
File: autogpt_platform/frontend/src/tests/CLAUDE.md:0-0
Timestamp: 2026-01-28T18:29:34.362Z
Learning: Applies to autogpt_platform/frontend/src/tests/src/tests/**/*.spec.ts : Use E2E tests (Playwright) for payment or sensitive transactions requiring a real browser

Applied to files:

  • .github/workflows/platform-fullstack-ci.yml
📚 Learning: 2026-02-26T17:02:22.448Z
Learnt from: Pwuts
Repo: Significant-Gravitas/AutoGPT PR: 12211
File: .pre-commit-config.yaml:160-179
Timestamp: 2026-02-26T17:02:22.448Z
Learning: Keep the pre-commit hook pattern broad for autogpt_platform/backend to ensure OpenAPI schema changes are captured. Do not narrow to backend/api/ alone, since the generated schema depends on Pydantic models across multiple directories (backend/data/, backend/blocks/, backend/copilot/, backend/integrations/, backend/util/). Narrowing could miss schema changes and cause frontend type desynchronization.

Applied to files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
📚 Learning: 2026-03-04T08:04:35.881Z
Learnt from: majdyz
Repo: Significant-Gravitas/AutoGPT PR: 12273
File: autogpt_platform/backend/backend/copilot/tools/workspace_files.py:216-220
Timestamp: 2026-03-04T08:04:35.881Z
Learning: In the AutoGPT Copilot backend, ensure that SVG images are not treated as vision image types by excluding 'image/svg+xml' from INLINEABLE_MIME_TYPES and MULTIMODAL_TYPES in tool_adapter.py; the Claude API supports PNG, JPEG, GIF, and WebP for vision. SVGs (XML text) should be handled via the text path instead, not the vision path.

Applied to files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
📚 Learning: 2026-03-05T15:42:08.207Z
Learnt from: ntindle
Repo: Significant-Gravitas/AutoGPT PR: 12297
File: .claude/skills/backend-check/SKILL.md:14-16
Timestamp: 2026-03-05T15:42:08.207Z
Learning: In Python files under autogpt_platform/backend (recursively), rely on poetry run format to perform formatting (Black + isort) and linting (ruff). Do not run poetry run lint as a separate step after poetry run format, since format already includes linting checks.

Applied to files:

  • autogpt_platform/backend/backend/copilot/baseline/service.py
🪛 actionlint (1.7.11)
.github/workflows/platform-fullstack-ci.yml

[error] 140-140: label "big-boi" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2025-vs2026", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26-large", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xlarge", "macos-14-large", "macos-14", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (2)
autogpt_platform/backend/backend/copilot/baseline/service.py (1)

89-100: LGTM on the lazy client migration.

Request-time lookup plus the client=None fallback keeps the compression path resilient while avoiding eager OpenAI initialization on both call sites.

Also applies to: 238-238

.github/workflows/platform-fullstack-ci.yml (1)

84-86: Nice simplification of the OpenAPI export flow.

Exporting straight from the backend CLI is a much cheaper path than booting the backend stack, and the target file matches the frontend schema input cleanly.

Comment thread .github/workflows/platform-fullstack-ci.yml
Comment thread .github/workflows/platform-fullstack-ci.yml
@Pwuts
Pwuts added this pull request to the merge queue Mar 16, 2026
@github-project-automation github-project-automation Bot moved this from 🆕 Needs initial review to 👍🏼 Mergeable in AutoGPT development kanban Mar 16, 2026
Merged via the queue into dev with commit aff3fb4 Mar 16, 2026
25 checks passed
@Pwuts
Pwuts deleted the pwuts/merge-frontend-cis branch March 16, 2026 23:20
@github-project-automation github-project-automation Bot moved this from 👍🏼 Mergeable to ✅ Done in AutoGPT development kanban Mar 16, 2026
Bentlybro pushed a commit that referenced this pull request Apr 4, 2026
Our CI costs are skyrocketing, most of it because of
`platform-fullstack-ci.yml`. The `types` job currently uses in a
`big-boi` runner (= expensive), but doesn't need to.
Additionally, the "end-to-end tests" job is currently in
`platform-frontend-ci.yml` instead of `platform-fullstack-ci.yml`,
causing it not to run on backend changes (which it should).

### Changes 🏗️

- Simplify `check-api-types` job (renamed from `types`) and make it use
regular `ubuntu-latest` runner
- Export API schema from backend through CLI (instead of spinning it up
in docker)
- Fix dependency caching in `platform-fullstack-ci.yml` (based on recent
improvements in `platform-frontend-ci.yml`)
- Move `e2e_tests` job to `platform-fullstack-ci.yml`

Out-of-scope but necessary:
- Eliminate module-level init of OpenAI client in
`backend.copilot.service`

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - CI
Bentlybro pushed a commit to Bentlybro/AutoGPT that referenced this pull request Apr 4, 2026
…avitas#12437)

Our CI costs are skyrocketing, most of it because of
`platform-fullstack-ci.yml`. The `types` job currently uses in a
`big-boi` runner (= expensive), but doesn't need to.
Additionally, the "end-to-end tests" job is currently in
`platform-frontend-ci.yml` instead of `platform-fullstack-ci.yml`,
causing it not to run on backend changes (which it should).

### Changes 🏗️

- Simplify `check-api-types` job (renamed from `types`) and make it use
regular `ubuntu-latest` runner
- Export API schema from backend through CLI (instead of spinning it up
in docker)
- Fix dependency caching in `platform-fullstack-ci.yml` (based on recent
improvements in `platform-frontend-ci.yml`)
- Move `e2e_tests` job to `platform-fullstack-ci.yml`

Out-of-scope but necessary:
- Eliminate module-level init of OpenAI client in
`backend.copilot.service`

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - CI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform/backend AutoGPT Platform - Back end size/l size/xl

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants