Conversation
* complete proposal for expanding widget convex wrapper hooks * include generic typed calls to makeFunctionReference
Move and update docs
…ing-ref-factories sdk-core string ref replacements
…al-convex-wrapper-hooks introduce-mobile-local-convex-wrapper-hooks
* Manual edits to email capture widget (+ CI summary labels text) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Djanogly <45178753+djanogly@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…TBC) (#24) * Add file uploads - UI needs work * improve styling, remove Snippets button * Update unit tests * skip dismiss email collection test * fallback and tweaks * Limit filetypes Partially completed - the upload spoofing hardening is improved, but not all the way to magic-byte sniffing. We now require an allowlisted extension from the normalized filename on both the client and backend in supportAttachments.ts (line 70) and supportAttachments.ts (line 57), and added regression coverage in supportAttachments.test.ts (line 151) and supportAttachments.test.ts (line 8). I did not add signature checks, because the current finalizeUpload boundary is a Convex mutation and ctx.storage.get() is only available in actions. Doing true magic-byte validation would need a larger refactor of that finalize flow.
* Proper AI knowledge handling with Mastra * feat: replace legacy AI agent knowledge retrieval with Convex Vector Search * docs: update spec to mention convex instead of mastra * docs: archive use-convex-vector-search and update main specs * fix: use existing Vercel AI Gateway client for embedding generation * fix: retrieve full embedding document in aiAgentActionsKnowledge to access contentType and contentId * working AI agent and suggestions * Fixes for Typing gaps, unused ref, invalid vector filter chaining Unused ref warning in packages/convex/convex/embeddings.ts Invalid vector filter chaining in packages/convex/convex/suggestions.ts * harden types * update AGENTS.md
* Add embedding refresh button * Tighten permissions
…#29) * insert links to knowledge base from admin chat, and use vector search * Encourage checks in AGENTS, update dependency allowlist
* Use any model for AI Agent * restrict embedding model choice to vectors with 1536 dimensions, not 3072. * fix tests * Address type issues etc * Address typing issues etc. add docs, tests and display the models in UI * make error in fetching models explicit * update deps * Fix playwright tests
* openspec proposal * Untested / Not validated - needs checking * update script and docs - tested * Pass CI gate
# Conflicts: # docs/scripts-reference.md # package.json # pnpm-lock.yaml
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan Review Summary by QodoFoolproof Local Convex Setup with Node.js Bootstrap, Agent Skills Library, and Comprehensive Documentation
WalkthroughsDescription• **Complete Node.js setup orchestration**: Replaced bash-based bootstrap with comprehensive 1500+ line local-convex-setup.js script providing interactive terminal UI, multi-phase setup flow (dependency install, Convex deployment, auth validation, workspace resolution, env propagation), and robust error handling with actionable messages • **Deterministic test coverage**: Added 630-line test suite covering clean setup, rerun scenarios, JWT regeneration, auth failures, and env file merging using temporary directories and stubbed dependencies • **Setup manifest and configuration**: Introduced data-driven manifest defining core auth requirements (JWT_PRIVATE_KEY, JWKS, SITE_URL) and optional feature profiles with env targets across web, widget, mobile, landing, and React Native SDK apps • **Simplified shell wrappers**: Reduced setup.sh from 350 to 32 lines and update-env.sh from 133 to 20 lines, now thin Node.js delegators with minimal prerequisite checks (Node 18+, PNPM 9+) • **Comprehensive agent skills library**: Added five new AI agent skills with detailed guides and references: Convex Setup Auth (provider selection and implementation), Convex Migration Helper (safe schema migrations), Convex Performance Audit (optimization patterns), Convex Quickstart (project initialization), and Convex Create Component (reusable component architecture) • **Updated documentation**: Refreshed setup guides, environment variable examples across all apps, testing documentation, and scripts reference to reflect new bootstrap flow with --reconfigure and --create-workspace flags • **Dependency updates**: Updated @xmldom/xmldom from 0.8.12 to 0.8.13 and added skills-lock.json for agent skills version tracking Diagramflowchart LR
A["Bash setup.sh<br/>350 lines"] -->|"Replaced with"| B["Node.js<br/>local-convex-setup.js<br/>1500+ lines"]
B -->|"Orchestrates"| C["Multi-phase Flow"]
C -->|"1. Preflight"| D["Dependency Check"]
C -->|"2. Convex Config"| E["Deployment Setup"]
C -->|"3. Auth"| F["JWT/JWKS Config"]
C -->|"4. Workspace"| G["Selection & Validation"]
C -->|"5. Env Propagation"| H["Non-destructive<br/>Merge"]
B -->|"Tested by"| I["630-line Test Suite"]
I -->|"Validates"| J["Clean Setup<br/>Rerun Safety<br/>Auth Failures"]
B -->|"Uses"| K["Setup Manifest"]
K -->|"Defines"| L["Auth Requirements<br/>Feature Profiles<br/>Env Targets"]
M["Agent Skills<br/>Library"] -->|"Includes"| N["Setup Auth"]
M -->|"Includes"| O["Migration Helper"]
M -->|"Includes"| P["Performance Audit"]
M -->|"Includes"| Q["Quickstart"]
M -->|"Includes"| R["Create Component"]
File Changes1. scripts/local-convex-setup.js
|
Code Review by Qodo
1. Agent docs use npm/npx
|
| 1. Determine the starting point: new project or existing app | ||
| 2. If new project, pick a template and scaffold with `npm create convex@latest` | ||
| 3. If existing app, install `convex` and wire up the provider | ||
| 4. Run `npx convex dev` to connect a deployment and start the dev loop | ||
| 5. Verify the setup works | ||
|
|
||
| ## Path 1: New Project (Recommended) | ||
|
|
||
| Use the official scaffolding tool. It creates a complete project with the frontend framework, Convex backend, and all config wired together. | ||
|
|
||
| ### Pick a template | ||
|
|
||
| | Template | Stack | | ||
| | -------------------------- | ----------------------------------------- | | ||
| | `react-vite-shadcn` | React + Vite + Tailwind + shadcn/ui | | ||
| | `nextjs-shadcn` | Next.js App Router + Tailwind + shadcn/ui | | ||
| | `react-vite-clerk-shadcn` | React + Vite + Clerk auth + shadcn/ui | | ||
| | `nextjs-clerk` | Next.js + Clerk auth | | ||
| | `nextjs-convexauth-shadcn` | Next.js + Convex Auth + shadcn/ui | | ||
| | `nextjs-lucia-shadcn` | Next.js + Lucia auth + shadcn/ui | | ||
| | `bare` | Convex backend only, no frontend | | ||
|
|
||
| If the user has not specified a preference, default to `react-vite-shadcn` for simple apps or `nextjs-shadcn` for apps that need SSR or API routes. | ||
|
|
||
| You can also use any GitHub repo as a template: | ||
|
|
||
| ```bash | ||
| npm create convex@latest my-app -- -t owner/repo | ||
| npm create convex@latest my-app -- -t owner/repo#branch | ||
| ``` | ||
|
|
||
| ### Scaffold the project | ||
|
|
||
| Always pass the project name and template flag to avoid interactive prompts: | ||
|
|
||
| ```bash | ||
| npm create convex@latest my-app -- -t react-vite-shadcn | ||
| cd my-app | ||
| npm install | ||
| ``` | ||
|
|
||
| The scaffolding tool creates files but does not run `npm install`, so you must run it yourself. | ||
|
|
||
| To scaffold in the current directory (if it is empty): | ||
|
|
||
| ```bash | ||
| npm create convex@latest . -- -t react-vite-shadcn | ||
| npm install | ||
| ``` | ||
|
|
||
| ### Start the dev loop | ||
|
|
||
| `npx convex dev` is a long-running watcher process that syncs backend code to a Convex deployment on every save. It also requires authentication on first run (browser-based OAuth). Both of these make it unsuitable for an agent to run directly. | ||
|
|
||
| **Ask the user to run this themselves:** | ||
|
|
||
| Tell the user to run `npx convex dev` in their terminal. On first run it will prompt them to log in or develop anonymously. Once running, it will: | ||
|
|
||
| - Create a Convex project and dev deployment | ||
| - Write the deployment URL to `.env.local` | ||
| - Create the `convex/` directory with generated types | ||
| - Watch for changes and sync continuously | ||
|
|
||
| The user should keep `npx convex dev` running in the background while you work on code. The watcher will automatically pick up any files you create or edit in `convex/`. | ||
|
|
||
| **Exception - cloud or headless agents:** Environments that cannot open a browser for interactive login should use Agent Mode (see below) to run anonymously without user interaction. | ||
|
|
||
| ### Start the frontend | ||
|
|
||
| The user should also run the frontend dev server in a separate terminal: | ||
|
|
||
| ```bash | ||
| npm run dev | ||
| ``` |
There was a problem hiding this comment.
1. Agent docs use npm/npx 📘 Rule violation § Compliance
New/updated agent skill documentation instructs using npm/npx commands (e.g., npm install, npm create, npx convex ...) instead of PNPM equivalents. This violates the repo requirement to use PNPM exclusively for package management and CLI execution instructions.
Agent Prompt
## Issue description
Several newly added agent skill docs include `npm`/`npx` commands (e.g., `npm install`, `npm create`, `npx convex ...`). Repo policy requires using PNPM equivalents (`pnpm install`, `pnpm run`, `pnpm create`, `pnpm dlx`/`pnpm exec`) unless a tool truly cannot work with PNPM and the exception is documented.
## Issue Context
This is documentation intended to guide contributors/agents; inconsistent package manager instructions cause drift and violates the PNPM-only compliance requirement.
## Fix Focus Areas
- .agents/skills/convex-quickstart/SKILL.md[23-96]
- .agents/skills/convex-migration-helper/references/migrations-component.md[7-16]
- .agents/skills/convex-migration-helper/references/migrations-component.md[62-136]
- .agents/skills/convex-setup-auth/references/convex-auth.md[17-31]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
No description provided.