3.3 KiB
3.3 KiB
AGENTS.md
Cursor Cloud specific instructions
Project overview
GoodGo is an enterprise microservices monorepo. The Node.js/TypeScript layer (frontend apps + shared packages) is the primary development target in this cloud environment. Backend services are all .NET 10 and require external infrastructure (Neon PostgreSQL, Redis, Docker) that is not available by default.
Runtime requirements
- Node.js 25 (specified in
.nvmrcandpackage.jsonengines). Install vianvm install 25 && nvm alias default 25. - pnpm 8.15.0 (specified in
package.jsonpackageManagerfield). Install vianpm install -g pnpm@8.15.0.
Key commands
Standard commands are documented in README.md and package.json scripts. Quick reference:
| Task | Command |
|---|---|
| Install deps | pnpm install |
| Build shared packages | pnpm -r --filter "./packages/*" build |
| Lint | pnpm lint |
| Typecheck | pnpm typecheck |
| Test | pnpm test |
| Dev (web-client) | pnpm --filter @goodgo/web-client dev |
| Dev (docs) | pnpm --filter @goodgo/vitepress-docs dev |
| Format | pnpm format |
Gotchas
- Shared packages must be built before typecheck/dev:
pnpm typecheckautomatically builds packages first (see the script in rootpackage.json), but if runningpnpm --filter @goodgo/web-client devdirectly, ensure packages are built first withpnpm -r --filter "./packages/*" build. - Prisma warning on Node 25: Prisma emits a preinstall warning that Node 25 is not officially supported. This is non-blocking;
pnpm installcompletes successfully. - Pre-existing test failures: 6 tests in
apps/web-clientfail due to Zustand persist middleware requiringlocalStoragewhich is not properly mocked in the jsdom test environment. These are pre-existing and not caused by environment setup. The failing stores areauth-storeandchat-store. - Backend services (.NET): All services under
services/*-net/require .NET 10 SDK, Neon PostgreSQL, and Redis. They are not runnable in the default cloud environment without those dependencies. - web-client dev server: Runs on port 3000 by default via
next dev. - .NET 10 SDK for Blazor apps: Install via
~/.dotnet/dotnet-install.sh --channel 10.0 --install-dir $HOME/.dotnet. The update script handles this automatically. EnsureDOTNET_ROOT=$HOME/.dotnetandPATHincludes$HOME/.dotnet. - Blazor TPOS app (
web-client-tpos-net) pre-existing build errors: Files inPages/Pos/Shared/Dialogs/(VoidRefund.razor,OrderEdit.razor,SplitBill.razor) have"encoding and syntax errors that preventdotnet build/dotnet run. The Payment workflow files inPages/Pos/Shared/Payment/compile cleanly. - Blazor TPOS dev server:
dotnet run --project src/WebClientTpos.Serverfromapps/web-client-tpos-net/serves on port 5091 (requires pre-existing Dialogs build errors to be fixed first). - Blazor POS page patterns: All POS Razor files use
@layout PosLayout,@inherits PosBase, bilingualEN: / VI:comments,@* ═══ SECTION ═══ *@separators, CSS variables (--pos-*),FormatPrice(decimal),NavigateTo(string), Lucide icons, and hardcoded Vietnamese demo data. Verticals: Cafe, Restaurant, Karaoke, Spa, Retail. Shared screens: Operations (ClockInOut, ShiftManagement, CashDrawer, PendingOrders, QuickSale), Payment, Dialogs.