-all most done for development testing is done and all kind of feture… - #1
Conversation
|
Important Review skippedToo many files! This PR contains 162 files, which is 62 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (162)
You can disable this status message by setting the 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. Comment |
There was a problem hiding this comment.
Pull request overview
This PR expands Dev64 AI’s end-to-end product flow by introducing prepaid credits + Razorpay payments, adding skill/tool management endpoints and UI, and establishing a more complete testing setup (Vitest + Playwright) alongside updated landing/auth marketing copy that reflects the real infrastructure stack.
Changes:
- Add Razorpay-backed credit top-ups (backend routes/services/models + frontend dialog/sidebar surfacing balance).
- Add skill upload support (frontmatter parsing + API endpoint) and frontend skill/tool API typings.
- Add/expand test infrastructure (Vitest configs/tests and Playwright E2E) and update landing/auth copy + UI polish.
Reviewed changes
Copilot reviewed 160 out of 164 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| opencode.json | OpenCode MCP + skills config |
| Frontend/vite.config.ts | Add Vitest config (jsdom) |
| Frontend/test-results/.last-run.json | Add generated test artifact |
| Frontend/src/types/tool.type.ts | Add skill/tool API types |
| Frontend/src/types/session.type.ts | Add prUrl to session type |
| Frontend/src/types/auth.type.ts | Add balance to AuthUser |
| Frontend/src/test/setup.ts | Add RTL cleanup setup |
| Frontend/src/pages/session/index.tsx | Pass prUrl into chat |
| Frontend/src/pages/landing/components/workflow.tsx | Update workflow copy |
| Frontend/src/pages/landing/components/testimonials.tsx | Replace quotes with provider facts |
| Frontend/src/pages/landing/components/logo-strip.tsx | Make logo strip link out |
| Frontend/src/pages/landing/components/hero.tsx | Update hero stats copy |
| Frontend/src/pages/landing/components/footer.tsx | Adjust footer styling |
| Frontend/src/pages/landing/components/capabilities.tsx | Update model/provider copy |
| Frontend/src/pages/auth/auth-panel.tsx | Update auth panel copy/model label |
| Frontend/src/lib/utils.test.ts | Add unit tests for utils |
| Frontend/src/lib/env.ts | Add Razorpay key env export |
| Frontend/src/lib/api.ts | Add skills/tools/payments API calls |
| Frontend/src/hooks/use-chat-stream.ts | Improve streamed error messaging |
| Frontend/src/components/sidebar/index.tsx | Add credits button + dialog |
| Frontend/src/components/settings/settings-dialog.tsx | Add Skills/Tools section + scroll |
| Frontend/src/components/settings/payment-dialog.test.tsx | Add payment dialog tests |
| Frontend/src/components/chat/index.tsx | Persist PR URL across reload |
| Frontend/src/components/chat/chat-input.tsx | Keep composer in-flow (no overlap) |
| Frontend/src/components/ai-elements/commit.tsx | Add branch tooltip + truncation |
| Frontend/src/components/settings/payment-dialog.tsx | Add Razorpay top-up UI dialog |
| Frontend/skills/session-start-repo-picker/SKILL.md | Add repo-picker rules skill |
| Frontend/skills/session-history-sidebar/SKILL.md | Add session history rules skill |
| Frontend/skills/react-tailwind-ui/SKILL.md | Add frontend UI conventions skill |
| Frontend/skills/landing-page/SKILL.md | Add landing-page rules skill |
| Frontend/skills/chat-streaming-ui/SKILL.md | Add chat streaming UI rules skill |
| Frontend/skills/auth-pages/SKILL.md | Add auth pages rules skill |
| Frontend/playwright.config.ts | Add Playwright config |
| Frontend/package.json | Add test script + test deps |
| Frontend/e2e/landing.spec.ts | Add landing/auth/guards E2E tests |
| Frontend/.gitignore | Ignore frontend env files |
| backend/vitest.config.mts | Add backend Vitest config + env |
| backend/test/smoke.test.ts | Add API smoke tests |
| backend/test/setup.ts | Add mongoose disconnect teardown |
| backend/test/helpers/mongo.ts | Add mongodb-memory-server helpers |
| backend/src/services/skill.service.ts | Add skill frontmatter + file install |
| backend/src/services/skill.service.test.ts | Add skill service tests |
| backend/src/services/message.service.test.ts | Add sanitizeUIMessages tests |
| backend/src/routes/skill.route.ts | Add skill upload route |
| backend/src/routes/payment.route.ts | Add payments router |
| backend/src/routes/index.ts | Mount payments router |
| backend/src/models/user.model.ts | Add balance + transactions |
| backend/src/models/skill.model.ts | Add optional skill content |
| backend/src/models/session.model.ts | Add prUrl field |
| backend/src/models/payment.model.ts | Add Payment model |
| backend/src/lib/ai/morph-provider.ts | Add AICredits provider client |
| backend/src/index.ts | Move app creation to app.ts |
| backend/src/controllers/skill.controller.ts | Add uploadSkill controller |
| backend/src/controllers/payment.controller.ts | Add payment controllers |
| backend/src/controllers/auth.controller.ts | Include balance in auth user |
| backend/src/config/env.config.ts | Add AI credits + Razorpay env |
| backend/src/app.ts | Centralize Express app + webhook raw body |
| backend/skills/upstash-box-sandbox/SKILL.md | Add sandbox rules skill |
| backend/skills/sessions-messages-persistence/SKILL.md | Add persistence rules skill |
| backend/skills/razorpay-payments/SKILL.md | Add payments/credits rules skill |
| backend/skills/mcp-custom-tools/SKILL.md | Add MCP/custom tools rules skill |
| backend/skills/github-integration/SKILL.md | Add GitHub integration rules skill |
| backend/skills/express-api-rules/SKILL.md | Add backend API conventions skill |
| backend/skills/code-search-warpgrep/SKILL.md | Add warpGrep rules skill |
| backend/skills/auth-and-oauth/SKILL.md | Add auth rules skill |
| backend/skills/agent-session-loop/SKILL.md | Add agent loop rules skill |
| backend/package.json | Add vitest/supertest/memory mongo deps |
| backend/.env.example | Add backend env example |
| .opencode/skills/web-design-guidelines/SKILL.md | Add UI guidelines review skill |
| .opencode/skills/vercel-react-best-practices/metadata.json | Add best-practices pack metadata |
| .opencode/skills/vercel-react-best-practices/rules/server-serialization.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-dedup-props.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-cache-react.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-cache-lru.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-auth-actions.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-transitions.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-memo.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-derived-state.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-dependencies.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-resource-hints.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/rendering-activity.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-request-idle-callback.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-min-max-loop.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-length-check-first.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-index-maps.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-flatmap-filter.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-early-exit.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-combine-iterations.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-cache-storage.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-cache-property-access.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/js-cache-function-results.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/client-swr-dedup.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/client-event-listeners.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-preload.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-conditional.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-parallel.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-dependencies.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-defer-await.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/async-api-routes.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/advanced-use-latest.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/advanced-init-once.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md | Add Vercel rule doc |
| .opencode/skills/vercel-react-best-practices/rules/_template.md | Add Vercel rule template |
| .opencode/skills/vercel-react-best-practices/rules/_sections.md | Add Vercel rules index |
Files not reviewed (2)
- Frontend/package-lock.json: Generated file
- backend/package-lock.json: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| <span className="block font-lpmono text-[12px] tracking-widest text-ink uppercase"> | ||
| ₹{currentUser?.user?.balance?.toFixed(0) ?? "0"} credits | ||
| </span> | ||
| <span className="block font-mono text-[10px] text-ink-faint"> | ||
| {currentUser?.user?.balance && currentUser.user.balance < 10 | ||
| ? "Add credits to continue" | ||
| : "Pay with UPI"} | ||
| </span> |
| <a | ||
| key={company.name} | ||
| href={company.href} | ||
| target="_blank" | ||
| rel="noreferrer" | ||
| style={{ "--brand-color": company.color } as React.CSSProperties} |
| { | ||
| "status": "passed", | ||
| "failedTests": [] | ||
| } No newline at end of file |
| export const createPaymentOrder = async (amount: number): Promise<PaymentOrderResponse> => { | ||
| const response = await API.post<PaymentOrderResponse>("/payments/order", { amount }); | ||
| return response.data; | ||
| }; |
| # Environment | ||
| .env | ||
| .env.* | ||
| !.env.example | ||
|
|
…s is working