Skip to content

fix(e2e): update Maestro flows for 1.40.0 config section requirement#2040

Merged
andrew-bierman merged 1 commit into
developmentfrom
worktree-fix+e2e-maestro-config
Apr 11, 2026
Merged

fix(e2e): update Maestro flows for 1.40.0 config section requirement#2040
andrew-bierman merged 1 commit into
developmentfrom
worktree-fix+e2e-maestro-config

Conversation

@andrew-bierman
Copy link
Copy Markdown
Collaborator

@andrew-bierman andrew-bierman commented Apr 11, 2026

Summary

  • Maestro 1.40.0 introduced a breaking change requiring each flow file to have its own config section (appId: + --- separator)
  • All 14 flow files under .maestro/flows/ now start with appId: ${APP_ID} followed by ---
  • CI workflow passes APP_ID per platform via env vars (iOS: com.andrewbierman.packrat, Android: com.packratai.mobile)
  • The config.yaml / config-android.yaml suite-level configs remain unchanged

Root Cause

E2E tests were failing on main before this PR — gh run list confirmed the pre-existing breakage. Maestro 1.40.0 (pinned in the workflow) changed the flow file format, requiring every flow to declare its appId upfront rather than inheriting it only from the suite config.

Test plan

  • E2E workflow triggers on this PR and passes for both iOS and Android jobs
  • APP_ID resolves correctly per platform at runtime
  • Flow execution order in config.yaml / config-android.yaml is unaffected

Compound Engineered 🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Improved end-to-end test automation infrastructure by configuring explicit app identifiers for iOS and Android platforms across the test suite. This ensures proper app targeting during test execution and strengthens test reliability and consistency throughout all automated test workflows.

Copilot AI review requested due to automatic review settings April 11, 2026 04:35
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 11, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: beccccc8-31dd-4343-9da3-ea02174d42ab

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This pull request adds parameterized app identifier configuration to E2E testing infrastructure. The changes set platform-specific APP_ID environment variables in the GitHub Actions workflow for iOS and Android test jobs, then update 14 Maestro test flow files to reference these variables via appId: ${APP_ID} configuration headers.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow
.github/workflows/e2e-tests.yml
Added APP_ID environment variables to E2E test steps: com.andrewbierman.packrat for iOS and com.packratai.mobile for Android.
Maestro Auth Flows
.maestro/flows/auth/login-flow.yaml, .maestro/flows/auth/logout-flow.yaml
Added appId: ${APP_ID} configuration header to each flow YAML.
Maestro Catalog Flows
.maestro/flows/catalog/catalog-browse-flow.yaml, .maestro/flows/catalog/catalog-item-detail-flow.yaml
Added appId: ${APP_ID} configuration header to each flow YAML.
Maestro Dashboard & Negative Test Flows
.maestro/flows/dashboard/dashboard-tiles-flow.yaml, .maestro/flows/negative/empty-pack-submit-flow.yaml, .maestro/flows/negative/empty-trip-submit-flow.yaml
Added appId: ${APP_ID} configuration header to each flow YAML.
Maestro Pack & Setup Flows
.maestro/flows/packs/add-item-actions-flow.yaml, .maestro/flows/packs/create-pack-flow.yaml, .maestro/flows/packs/pack-detail-flow.yaml, .maestro/flows/setup/clear-state.yaml
Added appId: ${APP_ID} configuration header to each flow YAML.
Maestro Profile & Trip Flows
.maestro/flows/profile/profile-view-flow.yaml, .maestro/flows/trips/create-trip-flow.yaml, .maestro/flows/trips/trip-detail-flow.yaml
Added appId: ${APP_ID} configuration header to each flow YAML.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • PackRat-AI/PackRat#1911: This PR parameterizes appId references across the same Maestro flow files and E2E workflow established in #1911, enabling environment-based app ID configuration for multi-platform testing.

Poem

🐰 With APP_ID now set free,
Each flow knows which app it shall be,
iOS and Android, no more mixed,
The tests run clean, perfectly fixed! 🎯

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and specifically describes the main change: updating Maestro flows to comply with version 1.40.0's new config section requirement.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch worktree-fix+e2e-maestro-config

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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the repo’s Maestro E2E setup to comply with Maestro 1.40.0’s breaking change that requires every individual flow YAML to include its own config section (with appId + ---), and wires the per-platform app id into CI via APP_ID.

Changes:

  • Prepended appId: ${APP_ID} and --- to all .maestro/flows/**.yaml flows so each flow is self-contained for Maestro 1.40.0.
  • Updated the GitHub Actions E2E workflow to pass APP_ID for iOS and Android Maestro runs.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.maestro/flows/trips/trip-detail-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/trips/create-trip-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/setup/clear-state.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/profile/profile-view-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/packs/pack-detail-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/packs/create-pack-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/packs/add-item-actions-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/negative/empty-trip-submit-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/negative/empty-pack-submit-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/dashboard/dashboard-tiles-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/catalog/catalog-item-detail-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/catalog/catalog-browse-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/auth/logout-flow.yaml Adds required per-flow config header using ${APP_ID}.
.maestro/flows/auth/login-flow.yaml Adds required per-flow config header using ${APP_ID}.
.github/workflows/e2e-tests.yml Exports APP_ID per platform so ${APP_ID} resolves in flows during CI.

Comment on lines +1 to +2
appId: ${APP_ID}
---
@andrew-bierman andrew-bierman changed the base branch from main to development April 11, 2026 04:47
@cloudflare-workers-and-pages
Copy link
Copy Markdown
Contributor

cloudflare-workers-and-pages Bot commented Apr 11, 2026

Deploying packrat-landing with  Cloudflare Pages  Cloudflare Pages

Latest commit: 03a5e92
Status: ✅  Deploy successful!
Preview URL: https://cd2d24f8.packrat-landing.pages.dev
Branch Preview URL: https://worktree-fix-e2e-maestro-con.packrat-landing.pages.dev

View logs

@github-actions github-actions Bot added the ci/cd label Apr 11, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown
Contributor

Deploying packrat-guides with  Cloudflare Pages  Cloudflare Pages

Latest commit: 03a5e92
Status: ✅  Deploy successful!
Preview URL: https://8152daff.packrat-guides-6gq.pages.dev
Branch Preview URL: https://worktree-fix-e2e-maestro-con.packrat-guides-6gq.pages.dev

View logs

Maestro 1.40.0 broke all flow files that lacked a per-file config section.
Each flow now starts with `appId: ${APP_ID}` followed by a `---` separator,
and the CI workflow passes APP_ID per platform (iOS: com.andrewbierman.packrat,
Android: com.packratai.mobile) so the variable is resolved at runtime.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@andrew-bierman andrew-bierman force-pushed the worktree-fix+e2e-maestro-config branch from 03a5e92 to 3f66afa Compare April 11, 2026 05:34
@andrew-bierman andrew-bierman merged commit 5dc6332 into development Apr 11, 2026
5 of 7 checks passed
@andrew-bierman andrew-bierman deleted the worktree-fix+e2e-maestro-config branch April 11, 2026 05:39
andrew-bierman added a commit that referenced this pull request Apr 11, 2026
Add 14 new Maestro E2E flows plus a standalone suite runner script,
extending the existing .maestro/ suite on development with broader
coverage across AI chat, catalog search, pack management, trip editing,
dashboard templates, guides, session persistence, and negative paths.

New flows:
- ai/ai-chat-dashboard-flow.yaml
- ai/ai-chat-pack-flow.yaml
- catalog/catalog-search-flow.yaml
- dashboard/pack-templates-flow.yaml
- guides/guides-browse-flow.yaml
- helpers/handle-chooser.yaml
- negative/invalid-login-flow.yaml
- packs/add-item-catalog-flow.yaml
- packs/add-item-in-pack-catalog-flow.yaml
- packs/add-item-manual-flow.yaml
- packs/pack-edit-share-flow.yaml
- packs/pack-toggle-filter-flow.yaml
- setup/session-persistence-flow.yaml
- trips/trip-edit-flow.yaml

All new flows use the upstream \${APP_ID} env-var convention from #2040
so they work with any bundle identifier. Also adds .maestro/run-suite.sh
which runs the full ordered suite locally with a single command, wiring
through APP_ID, TEST_EMAIL, and TEST_PASSWORD.

Origin: extracted from #1867 (scope-clean split).
andrew-bierman added a commit that referenced this pull request May 14, 2026
fix(e2e): update Maestro flows for 1.40.0 config section requirement
andrew-bierman added a commit that referenced this pull request May 14, 2026
Add 14 new Maestro E2E flows plus a standalone suite runner script,
extending the existing .maestro/ suite on development with broader
coverage across AI chat, catalog search, pack management, trip editing,
dashboard templates, guides, session persistence, and negative paths.

New flows:
- ai/ai-chat-dashboard-flow.yaml
- ai/ai-chat-pack-flow.yaml
- catalog/catalog-search-flow.yaml
- dashboard/pack-templates-flow.yaml
- guides/guides-browse-flow.yaml
- helpers/handle-chooser.yaml
- negative/invalid-login-flow.yaml
- packs/add-item-catalog-flow.yaml
- packs/add-item-in-pack-catalog-flow.yaml
- packs/add-item-manual-flow.yaml
- packs/pack-edit-share-flow.yaml
- packs/pack-toggle-filter-flow.yaml
- setup/session-persistence-flow.yaml
- trips/trip-edit-flow.yaml

All new flows use the upstream \${APP_ID} env-var convention from #2040
so they work with any bundle identifier. Also adds .maestro/run-suite.sh
which runs the full ordered suite locally with a single command, wiring
through APP_ID, TEST_EMAIL, and TEST_PASSWORD.

Origin: extracted from #1867 (scope-clean split).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants