Commit graph

6497 commits

Author SHA1 Message Date
Sarthak Agarwal
a723030a56 added few update on pricing, case study and security page 2026-05-01 16:41:17 +05:30
Sarthak Agarwal
d3d4df2693 update How it works 2026-05-01 02:58:54 +05:30
Sarthak Agarwal
36d743bbfa updates 2026-05-01 02:45:57 +05:30
Sarthak Agarwal
c274133889 update continuous page and remove pricing 2026-05-01 02:39:32 +05:30
Sarthak Agarwal
8fcd7b0f7b update 2026-04-30 23:16:25 +05:30
Sarthak Agarwal
381f84f738 update 2026-04-30 22:59:55 +05:30
Sarthak Agarwal
dc248a1b00 update 2026-04-30 22:54:59 +05:30
Sarthak Agarwal
0babf7a456 add optimization engagement seperate page 2026-04-30 21:32:13 +05:30
Sarthak Agarwal
c50b244dcb remove unecessary files 2026-04-30 21:31:02 +05:30
Sarthak Agarwal
06bf808cfd revert index.html nav bar cta 2026-04-29 03:26:41 +05:30
Sarthak Agarwal
224358cfeb revert index.html copy changes 2026-04-29 03:16:55 +05:30
Sarthak Agarwal
bedb92806d draft 1 for booth graphics 2026-04-29 01:10:26 +05:30
Sarthak Agarwal
20e9c6e173 Merge remote-tracking branch 'origin/website-refresh' into website-refresh 2026-04-28 22:44:13 +05:30
Sarthak Agarwal
f9d06fd9cc update on optimize nav bar 2026-04-28 22:40:36 +05:30
claude[bot]
974ecdb39e fix: resolve mypy type errors
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 16:16:07 +00:00
Sarthak Agarwal
9295e949a7 update to click in drop down 2026-04-28 21:42:28 +05:30
Sarthak Agarwal
7e280a5ce6 update the nav bar again 2026-04-28 20:52:17 +05:30
Sarthak Agarwal
f1bedb50a8 sync the nav bar across pages 2026-04-28 19:48:21 +05:30
Sarthak Agarwal
ef0e0d80a7 homepage B2B positioning and messaging overhaul on trust ribbons 2026-04-28 13:55:26 +05:30
misrasaurabh1
becc46c50a update 2026-04-27 22:28:18 -07:00
misrasaurabh1
d4bbcabf0d update 2026-04-24 00:30:16 -07:00
misrasaurabh1
debc0672e1 update 2026-04-23 01:35:08 -07:00
misrasaurabh1
db5d2fc531 update 2026-04-23 00:24:34 -07:00
misrasaurabh1
1a78234d9f update 2026-04-22 23:45:32 -07:00
misrasaurabh1
fd28f8960b update 2026-04-22 20:12:50 -07:00
misrasaurabh1
0c042999b8 website WIP 2026-04-22 18:22:02 -07:00
Saurabh Misra
7355b05663
Merge pull request #2610 from codeflash-ai/cf-rl-env-catalog
Codeflash RL Environment for Roboflow Inference to train AI Agents for optimization
2026-04-16 16:35:50 -07:00
Saurabh Misra
9d4ecd07e8
Merge branch 'main' into cf-rl-env-catalog 2026-04-16 16:35:27 -07:00
misrasaurabh1
2a101a11f2 add universe optimize orchestrator with project management, 2026-04-16 16:34:36 -07:00
misrasaurabh1
a52d80b0aa add missing_commits_bundle_note.txt to base-image 2026-04-16 16:34:05 -07:00
misrasaurabh1
b3f164dcda rl env files 2026-04-16 16:31:25 -07:00
Kevin Turcios
791ee34f0d fix: target codeflash-webapp-2 staging with standalone deploy 2026-04-15 07:55:42 -05:00
Kevin Turcios
e1c1f13701 revert: drop node-linker=hoisted from .npmrc
node-linker=hoisted triggers an Invalid Version bug in pnpm 10 bin
linking. The standalone output with zip -y (symlink preservation) is
sufficient — Azure SquashFS supports symlinks natively.
2026-04-15 07:47:35 -05:00
Kevin Turcios
3f7baf9ab3 fix: preserve pnpm symlinks in standalone zip for Azure deployment
Use zip -y to preserve symlinks in the standalone output. Azure Linux
App Service mounts the zip via SquashFS which supports symlinks. This
keeps the pnpm .pnpm/ structure intact so next can resolve peer deps
like @swc/helpers and @next/env from their co-located positions.

Also re-add node-linker=hoisted to .npmrc per pnpm docs recommendation
for environments that need standard node_modules resolution.
2026-04-15 07:41:19 -05:00
Kevin Turcios
ae9e3011e7 fix: use Next.js standalone output for Azure deployment
Switch from zipping cf-webapp/node_modules to Next.js standalone output
mode. This traces only required runtime deps into .next/standalone/ and
resolves the pnpm symlink issues that caused MODULE_NOT_FOUND crashes on
Azure (missing @next/env, @swc/helpers).

- Add output: "standalone" and outputFileTracingRoot to next.config.mjs
- Update CI to cp -rL (dereference symlinks) the standalone output
- Revert node-linker=hoisted from .npmrc (no longer needed)
- Deploy to codeflash-webapp-main (set in previous commit)
2026-04-15 07:29:16 -05:00
Kevin Turcios
ea60289699 fix: hoist pnpm deps and deploy to codeflash-webapp-main
Add node-linker=hoisted to .npmrc so pnpm hoists all dependencies like
npm. Update CI to rsync workspace-root node_modules into cf-webapp
before zipping, ensuring @next/env, @swc/helpers, and other peer deps
are included. Retarget deployment to the new codeflash-webapp-main app.
2026-04-15 07:04:41 -05:00
Kevin Turcios
e2940da25f fix: add @swc/helpers as direct dependency for Azure deployment
pnpm doesn't hoist @swc/helpers to cf-webapp/node_modules/ by default,
so it's missing from the deploy zip. Azure runs npm start which can't
resolve it through pnpm's virtual store. Adding it as a direct dep
ensures it's included in the zip.
2026-04-15 06:47:06 -05:00
Kevin Turcios
459f07dde2 fix: remove redundant auth check from roadmap page
The page-level isTeamMember() check breaks PPR (Partial Prerendering):
at build time there's no session, so the prerender resolves as a
redirect/404 and the static shell poisons all runtime responses with 404.

Team member gating is already handled by proxy.ts middleware (lines 50-58),
matching how /observability and other team-gated routes work.
2026-04-15 05:23:46 -05:00
Kevin Turcios
0cbd8e0b6c
Adopt shared CI workflow for aiservice (#2609)
## Summary

- Add `aiservice-ci.yml` using the shared reusable workflow from
`codeflash-ai/github-workflows`
- Remove old `django-unit-tests.yaml` and `mypy_aiservice.yml` (both
replaced by the new unified workflow)
- **Typecheck job**: uses the shared workflow
(`codeflash-ai/github-workflows/.github/workflows/uv-mypy.yml`)
- **Test job**: defined locally in `aiservice-ci.yml` (needs repository
secrets that can't be passed to reusable workflows in other repos)

## What changed

| Before | After |
|---|---|
| `django-unit-tests.yaml` (standalone) | `aiservice-ci.yml` — test job
|
| `mypy_aiservice.yml` (standalone) | `aiservice-ci.yml` — typecheck job
(shared workflow) |
2026-04-15 02:32:22 -05:00
Kevin Turcios
4c9cdff1b0
fix: replace hardcoded edit secret with session auth (#2608)
## Summary
- Replace hardcoded `"codeflash-edit-2025"` string authentication in the
`save-modified-code` API route with Auth0 session check
- Remove the secret prompt modal from the Monaco diff viewer — editing
is now gated by the user's existing login session
- Remove unused `Lock` import, dead `console.log`, and unused `result`
variable

## Test plan
- [ ] Verify the edit code button works without prompting for a secret
- [ ] Verify saving modified code succeeds for logged-in users
- [ ] Verify unauthenticated requests to
`/api/traces/:id/save-modified-code` return 401
2026-04-14 21:59:58 -05:00
Kevin Turcios
e5374c3f50
fix: provide JWT_SECRET to CI build workflows (#2607)
## Summary
- Reverts lazy JWT_SECRET initialization — keeps eager fail-fast at
module load
- Adds `JWT_SECRET` secret to both `deploy_cfwebapp_to_azure.yml` and
`nextjs-build.yaml` CI workflows so `next build` page data collection
succeeds for the `/codeflash/auth/oauth/token` route

## Context
The deploy workflow ([run
#24425211765](https://github.com/codeflash-ai/codeflash-internal/actions/runs/24425211765/job/71357530269))
was failing because `JWT_SECRET` isn't available during CI build,
causing an eager throw at module load time. The secret already exists as
a GitHub repo secret.
2026-04-14 19:25:41 -05:00
Kevin Turcios
e6cec80c9d
Merge pull request #2606 from codeflash-ai/fix/cf-webapp-security-hardening
fix: harden cf-webapp security across auth, XSS, and headers
2026-04-14 17:04:44 -05:00
Kevin Turcios
1fada04c22 fix: repair bad merge in review-optimizations authorization checks
Duplicate and mangled if-blocks from the merge of #2605 caused a syntax
error that broke type-checking.
2026-04-13 19:38:24 -05:00
Kevin Turcios
91b692c1a0 fix: harden cf-webapp security across auth, XSS, and headers
- Add auth0.getSession() to unauthenticated observability endpoints
  (llm-call-debug, llm-export, observability chat)
- Remove hardcoded JWT_SECRET fallback; require env var
- Sanitize markdown HTML with DOMPurify before innerHTML assignment
- Escape user data in Intercom boot snippet via JSON.stringify
- Add security headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options,
  Referrer-Policy, Permissions-Policy) via next.config.mjs
- Move OAuth params from sessionStorage to signed HttpOnly cookie
- Add input validation: clamp page/pageSize bounds, allowlist sort fields
- Stop leaking error.message to clients in API responses
- Remove ~40 console.log/error statements that logged user IDs, org IDs,
  PKCE params, and OAuth flow details
- Delete unused api-client.ts (NEXT_PUBLIC_CF_API_KEY never imported)
2026-04-13 19:25:19 -05:00
Kevin Turcios
80d10762ff
Merge pull request #2605 from codeflash-ai/fix/security-authorization-bugs
fix: close authorization bypass and data-integrity bugs
2026-04-13 17:30:45 -05:00
Kevin Turcios
e82dab3c13
Update js/cf-webapp/src/app/(dashboard)/review-optimizations/[traceId]/action.ts
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-04-13 17:30:33 -05:00
Kevin Turcios
0fe3ca8c0a Harden dashboard authorization flows 2026-04-13 16:07:39 -05:00
Kevin Turcios
4269ec0275 fix: use upsert to prevent race condition in addOrganizationMember
Concurrent invites for the same user could both pass the existence check
and then the second create() would throw a unique constraint violation.
2026-04-13 15:17:44 -05:00
Kevin Turcios
8202ea512c fix: close authorization bypass and data-integrity bugs across dashboard
Security (critical):
- Scope member lookups to parent resource (repository_id / organization_id)
  in updateRepositoryMemberRole, removeRepositoryMember,
  updateOrganizationMemberRole, and removeOrganizationMember to prevent
  cross-tenant escalation via crafted memberId
- Replace unvalidated currentOrganizationId cookie reads with
  getAccountContext() (validates org membership) in review page and
  repo detail data loaders

Bugs:
- Add missing string-UUID branch in repository_id filter (raw SQL paths)
- Pass actual username to RepoDetailClient instead of empty string
- Remove misleading React.cache() on getAllOptimizationEventsImpl (object
  arg means reference equality never hits)
- Use create() result directly in addOrganizationMember to avoid NPE
  from unnecessary re-fetch
- Separate null-session redirect from null-event 404 in profiler page

Tests:
- Rewrite action.test.ts: org payload for Prisma findMany path, proper
  $queryRaw tagged-template mock for raw SQL path, verify repository_id
  filter is actually applied
2026-04-13 14:56:12 -05:00
Kevin Turcios
71127055f3 fix: redirect remaining auth throws that crash prerendering
getUserIdAndUsername() and getAccountContext() also threw generic
errors when no session exists. Same fix as apikeys: use redirect()
which Next.js handles as a prerender bailout signal.
2026-04-13 12:38:16 -05:00