Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,15 @@ Post in `#vacation-hq` → orchestrator plans, posts to department channels, run
| [docs/slack-swarm-delegation.md](docs/slack-swarm-delegation.md) | Reaction-trigger workaround |
| [docs/automations/](docs/automations/) | Automation prefills |
| [docs/bootstrap-test.md](docs/bootstrap-test.md) | Validation checklist |

## Cursor Cloud specific instructions

Environment notes for cloud agents (the startup update script already runs `flutter pub get` and `npm install` for `functions/` and `slack-orchestrator/`):

- **Flutter SDK** is installed at `/opt/flutter` (3.44.2 / Dart 3.12.2, matching `pubspec.lock`) and symlinked into `/usr/local/bin` as `flutter` and `dart`, so both are on `PATH` in any shell. Web is already enabled.
- **The apps talk to the LIVE Firebase project** `vacation-app-21706` — the project, web API key, and Cloud Function URLs are hardcoded (`flutter_app/firebase-config.json`, `lib/firebase_options.dart`, `lib/chat/vacation_agent_service.dart`). There is **no local emulator wiring**, so chat + lead submission require network access to Firebase AI Logic / Identity Toolkit / Cloud Functions. No Gemini or Twilio secret is needed client-side (web API key is embedded; the customer app uses anonymous auth).
- **Run the customer app (primary dev surface):** `cd flutter_app && flutter run -d web-server --web-hostname=0.0.0.0 --web-port=5001 -t lib/main_customer.dart` then open `http://localhost:5001`. Admin CRM is the same command with `-t lib/main_admin.dart` (use a different port). Use a tmux session for long-running `flutter run`.
- **Lint:** `cd flutter_app && flutter analyze` exits non-zero because of 4 pre-existing info/warning lints (not errors) — treat a clean run as "only those known issues". **Tests:** `flutter test` (Dart unit tests). The `node scripts/test-*.mjs` scripts hit the live backend and are the quickest connectivity check.
- **Functions** (`functions/`): build with `npm run build` (tsc). `npm run serve` starts Firebase emulators and additionally needs the Firebase CLI + Java; it is not required to run/test the customer app against prod.
- **Twilio SMS is optional** — leads still save to Firestore if Twilio creds are absent (the function records `smsStatus: "failed"`).
- Do **not** deploy or merge without explicit human instruction (see operating rules above).