rbin-task-flow 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -97,7 +97,7 @@ In **Next.js App Router** projects, organize `app/` with route groups:
97
97
 
98
98
  - **`(public)/`** — Public routes (login, signup, landing, etc.)
99
99
  - **`(private)/`** — Private routes (dashboard, profile, etc.; protect via layout or middleware)
100
- - **`(server)/`** — API / server routes (Route Handlers, e.g. `route.ts`)
100
+ - **`(server)/`** — API / server routes (Route Handlers, e.g. `route.ts`). **Any route under `/api` must live inside `(server)`** — i.e. `app/(server)/api/...`, not `app/api/...`.
101
101
 
102
102
  Example structure:
103
103
 
@@ -110,7 +110,7 @@ app/
110
110
  │ ├── dashboard/page.tsx
111
111
  │ └── admin/question/page.tsx
112
112
  ├── (server)/
113
- │ └── api/
113
+ │ └── api/ # /api/* routes live here
114
114
  │ └── .../route.ts
115
115
  ├── layout.tsx
116
116
  └── ...
@@ -158,7 +158,7 @@ export class CreateSessionController {
158
158
  **Rules:**
159
159
  - **Front-end/Mobile**: `page.tsx` / route files NEVER contain logic, state, or imports beyond the feature component
160
160
  - **Backend**: `app/` contains controllers and validators only — no business logic
161
- - **Next.js App Router**: Use `(public)/` for public routes, `(private)/` for private routes, `(server)/` for API/Route Handlers. Other React front-ends and mobile may use only `(public)` and `(private)` as needed.
161
+ - **Next.js App Router**: Use `(public)/` for public routes, `(private)/` for private routes, `(server)/` for API/Route Handlers; **routes under `/api` must be under `app/(server)/api/`**, not `app/api/`. Other React front-ends and mobile may use only `(public)` and `(private)` as needed.
162
162
  - `layout.tsx` files may contain auth guards and providers
163
163
  - All business logic lives in `features/`
164
164
 
@@ -797,6 +797,37 @@ export const useAuth = () => useContext(AuthContext)
797
797
  - Test files: `[feature].spec.ts` (Playwright) or `[feature].cy.ts` (Cypress)
798
798
  - Cover critical user flows: auth, main feature interactions, form submissions
799
799
 
800
+ ### Playwright — single root folder (e2e/)
801
+
802
+ Do **not** create `playwright-report/` or `test-results/` at project root. Use **only** `e2e/` at root; put all Playwright outputs inside it:
803
+
804
+ - **`e2e/`** — tests, helpers, and outputs (single folder at root)
805
+ - **`e2e/.results/`** — test artifacts (traces, screenshots; replaces default `test-results/`)
806
+ - **`e2e/.report/`** — HTML report (replaces default `playwright-report/`)
807
+
808
+ **playwright.config.ts:**
809
+
810
+ ```typescript
811
+ import { defineConfig } from '@playwright/test'
812
+
813
+ export default defineConfig({
814
+ testDir: './e2e',
815
+ outputDir: './e2e/.results',
816
+ fullyParallel: true,
817
+ forbidOnly: !!process.env.CI,
818
+ retries: process.env.CI ? 2 : 0,
819
+ workers: process.env.CI ? 1 : undefined,
820
+ reporter: [['html', { outputFolder: './e2e/.report' }]],
821
+ use: {
822
+ baseURL: 'http://localhost:3000',
823
+ trace: 'on-first-retry',
824
+ // ...
825
+ },
826
+ })
827
+ ```
828
+
829
+ **.gitignore:** add `e2e/.results/` and `e2e/.report/` so outputs stay untracked. The leading `.` keeps the folders collapsed in the editor.
830
+
800
831
  ### Mobile (Expo / React Native)
801
832
  - **E2E**: Detox
802
833
  - Tests live in `e2e/` at project root
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rbin-task-flow",
3
- "version": "1.9.0",
3
+ "version": "1.11.0",
4
4
  "description": "AI-powered task management for Claude and Cursor",
5
5
  "main": "index.js",
6
6
  "bin": {