Skip to content

feat: Add Startup-Research AgentKit [agentkit-challenge]#93

Open
cyber-turtle wants to merge 20 commits intoLamatic:mainfrom
cyber-turtle:feat/founder-lens
Open

feat: Add Startup-Research AgentKit [agentkit-challenge]#93
cyber-turtle wants to merge 20 commits intoLamatic:mainfrom
cyber-turtle:feat/founder-lens

Conversation

@cyber-turtle
Copy link
Copy Markdown

@cyber-turtle cyber-turtle commented Mar 23, 2026

What This Kit Does

Founder Lens is a 7-phase autonomous startup research agent designed to save non-technical founders weeks of manual research.

Users submit a startup idea, and the agent fires 9 highly targeted parallel Exa.ai web searches to gather TAM/SAM/SOM data, Crunchbase VC trends, direct competitors, failed startup postmortems, and verbatim customer complaints from Reddit and G2. A Contrarian VC persona then analyzes the data to find the fatal flaw.

The brief is synthesized, stored in Lamatic Semantic Memory (via Weaviate vector DB), and retrieved via RAG, allowing the founder to interactively chat with their analysis.

Providers & Prerequisites

  • Lamatic.ai: Handles orchestration, Semantic Memory, and Vector DB.
  • OpenRouter & Gemini: API keys configured in Lamatic's generic credentials panel.
  • Exa.ai (Neural Web Search): You must create an account on Exa.ai to get an API key. Once you import the Analyze flow into Lamatic, click on each individual Exa search node. Under the Headers section, manually input your API key into the x-api-key field (as a key-value pair).

How to Run Locally

  1. cd kits/agentic/founder-lens
  2. npm install
  3. cp .env.example .env.local and fill in the 5 Lamatic credential values
  4. npm run dev

Live Preview

image

Live App: https://founder-lens-agentkit.vercel.app/

Lamatic Flow

Analyze Flow ID: 54151a7e-99eb-4150-91eb-38f21cfeb8f8
Chat Flow ID: 0b0a3ee0-757d-4e85-a606-9ddb51fb0d40

  • Kit runs locally with npm run dev
  • .env.example has no secrets, only placeholders
  • README.md documents setup and usage
  • Folder structure follows kits/<category>/<kit-name>/
  • config.json is present and valid
  • All flows exported in flows/ folder
  • Vercel deployment works
  • Live preview URL works end-to-end
  • Adds "Founder Lens" Next.js 14 kit: a 7‑phase autonomous startup research agent that outputs investor‑grade brief JSONs and supports a RAG-backed chat.
  • Analyze flow: decomposes an idea, runs nine parallel Exa.ai web searches (market sizing, VC trends, competitors, failed startups/postmortems, verbatim customer complaints, business-model/unfair-advantage signals, etc.), runs a Contrarian VC pass to surface fatal flaws, synthesizes a grounded Founder Brief, vectorizes facts to Weaviate, and stores results in Lamatic semantic memory.
  • Chat flow: session-scoped RAG retrieval of the brief plus conversation history to answer founder queries and persist exchanges.
  • Frontend: dark, glassmorphic UI with idle→analyzing→ready/error states, PhaseTracker, BriefDisplay (tabbed, robust JSON parsing), ChatInterface, IdeaForm (typewriter examples), AuroraBackground canvas, localStorage session persistence, and optional notification sound.
  • Server/client glue: lamatic client module (validates required env vars at import), server actions analyzeIdea() and chatWithBrief() with timeout and error handling, and an orchestrate config exposing flow IDs and input schemas.
  • Project scaffolding and docs: .env.example, .gitignore, READMEs, exported flow config/inputs/meta JSONs, package.json, Tailwind/PostCSS, next.config.js, and TypeScript config; includes Vercel deployment notes and live preview.
  • Prereqs: Lamatic (orchestration/semantic memory), OpenRouter & Gemini keys, and Exa.ai (API key needs to be added into each imported Exa node after flow import).

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 23, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a new "Founder Lens" agent kit: a Next.js app with UI components, Lamatic client and server actions, plus two Lamatic workflows (analyze and chat) implementing multi-query web research, contrarian VC analysis, vector indexing, RAG retrieval, and semantic memory integration.

Changes

Cohort / File(s) Summary
Project scaffold & env
kits/agentic/founder-lens/.env.example, kits/agentic/founder-lens/.gitignore, kits/agentic/founder-lens/package.json, kits/agentic/founder-lens/next.config.js, kits/agentic/founder-lens/tsconfig.json, kits/agentic/founder-lens/postcss.config.js, kits/agentic/founder-lens/tailwind.config.js, kits/agentic/founder-lens/next-env.d.ts
Add kit scaffolding: env template, gitignore, package/Next/Tailwind/PostCSS/TS configs and Next type refs.
Kit manifest & runtime config
kits/agentic/founder-lens/config.json, kits/agentic/founder-lens/orchestrate.js
Add kit manifest and exported runtime config mapping analyze/chat flow IDs to env vars and defining input schemas.
Server actions & Lamatic client
kits/agentic/founder-lens/actions/orchestrate.ts, kits/agentic/founder-lens/lib/lamatic-client.ts
Add server actions analyzeIdea and chatWithBrief wrapping Lamatic flow calls with timeout/error handling; instantiate lamatic client and validate required env at import.
Frontend app & layout
kits/agentic/founder-lens/app/layout.tsx, kits/agentic/founder-lens/app/globals.css, kits/agentic/founder-lens/app/page.tsx
Add root layout, global styles (theme vars, glass/aurora utilities, prose, scrollbar), and Home page implementing multi-state workflow with localStorage session persistence.
UI components
kits/agentic/founder-lens/components/IdeaForm.tsx, kits/agentic/founder-lens/components/BriefDisplay.tsx, kits/agentic/founder-lens/components/ChatInterface.tsx, kits/agentic/founder-lens/components/PhaseTracker.tsx, kits/agentic/founder-lens/components/AuroraBackground.tsx, kits/agentic/founder-lens/components/Icons.tsx
Add client components: idea entry with animated placeholder, tabbed brief viewer with robust JSON parsing, chat UI with autosize and minimal markdown, phase tracker, aurora canvas background, and SVG icons.
Flows — Analyze
kits/agentic/founder-lens/flows/analyze/config.json, kits/agentic/founder-lens/flows/analyze/inputs.json, kits/agentic/founder-lens/flows/analyze/meta.json, kits/agentic/founder-lens/flows/analyze/README.md
Add multi-phase analyze workflow: decomposition → parallel Exa.ai searches → contrarian VC pass → final brief synthesis → vectorize/index → store semantic memory; includes node inputs, metadata, and docs.
Flows — Chat
kits/agentic/founder-lens/flows/chat/config.json, kits/agentic/founder-lens/flows/chat/inputs.json, kits/agentic/founder-lens/flows/chat/meta.json, kits/agentic/founder-lens/flows/chat/README.md
Add RAG-enabled chat workflow: safe-message derivation, memory retrieval, brief RAG, context merge, conditional LLM response, and memory append; includes node inputs and docs.
Flow inputs & metadata
kits/agentic/founder-lens/flows/*/inputs.json, kits/agentic/founder-lens/flows/*/meta.json
Add node-level input schemas and example test payloads for analyze and chat flows.
Lib utilities
kits/agentic/founder-lens/lib/utils.ts
Add helpers: Tailwind class composer (cn) and ID generators (generateSessionId, generateUserId).
README
kits/agentic/founder-lens/README.md
Add top-level kit README documenting flows, required credentials, local setup, Vercel deployment instructions, and contribution guidance.
Ignore & env
kits/agentic/founder-lens/.env.example, kits/agentic/founder-lens/.gitignore
Add .env example with Lamatic and flow IDs and .gitignore entries for node/next/env files and logs.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI as Founder Lens UI
    participant Server as Server Actions
    participant Lamatic as Lamatic Workflows
    participant Exa as Exa.ai
    participant LLM as LLM Services
    participant Weaviate as Vector DB
    participant Memory as Semantic Memory

    User->>UI: Submit startup idea
    UI->>Server: analyzeIdea(idea, userId, sessionId)
    Server->>Lamatic: Trigger Analyze Flow
    Lamatic->>LLM: Decompose idea -> generate queries
    Lamatic->>Exa: Run multiple parallel web searches
    Exa-->>Lamatic: Return search results
    Lamatic->>LLM: Contrarian analysis + Final synthesis
    LLM-->>Lamatic: Return Brief JSON
    Lamatic->>Weaviate: Vectorize & index facts
    Lamatic->>Memory: Store analysis record
    Lamatic-->>Server: Return brief + decomposition
    Server-->>UI: Return success & brief
    UI->>User: Display brief

    User->>UI: Ask question
    UI->>Server: chatWithBrief(message, userId, sessionId)
    Server->>Lamatic: Trigger Chat Flow
    Lamatic->>Memory: Retrieve conversation history
    Lamatic->>Weaviate: RAG retrieve brief sections
    Lamatic->>LLM: Generate answer using brief + history
    Lamatic->>Memory: Persist exchange
    Lamatic-->>Server: Return answer
    Server-->>UI: Deliver answer
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • Fix : Config Removal #42: Related changes to Lamatic client/config handling and environment-variable parsing; strongly connected to the new lamatic-client and env-driven flow IDs.

Suggested reviewers

  • amanintech
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: Add Startup-Research AgentKit [agentkit-challenge]' accurately describes the main change: introducing a new 'Founder Lens' startup research agent kit to the repository.
Docstring Coverage ✅ Passed Docstring coverage is 88.89% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cyber-turtle cyber-turtle changed the title feat: Add Founder Lens - AI Startup Research AgentKit feat: Add Startup-Research AgentKit Mar 23, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🧹 Nitpick comments (9)
kits/agentic/founder-lens/.env.example (1)

1-5: Minor style improvements for .env.example.

Static analysis flagged a few style issues:

  1. Quote characters around placeholder values may be parsed literally by some tools.
  2. Missing trailing newline.

These are minor but worth addressing for consistency.

✨ Proposed fix
-FOUNDER_LENS_ANALYZE_FLOW_ID="YOUR_ANALYZE_FLOW_ID"
-FOUNDER_LENS_CHAT_FLOW_ID="YOUR_CHAT_FLOW_ID"
-LAMATIC_API_URL="YOUR_API_ENDPOINT"
-LAMATIC_PROJECT_ID="YOUR_PROJECT_ID"
-LAMATIC_API_KEY="YOUR_API_KEY"
+FOUNDER_LENS_ANALYZE_FLOW_ID=
+FOUNDER_LENS_CHAT_FLOW_ID=
+LAMATIC_API_KEY=
+LAMATIC_API_URL=
+LAMATIC_PROJECT_ID=
kits/agentic/founder-lens/orchestrate.js (1)

1-6: Consider adding validation for required environment variables.

The config silently defaults to empty strings when environment variables are missing. This allows the app to start but will cause confusing runtime failures when flows are executed. Fail-fast validation would improve developer experience.

💡 Example validation approach
const requiredEnvVars = [
  'LAMATIC_API_URL',
  'LAMATIC_PROJECT_ID', 
  'LAMATIC_API_KEY',
  'FOUNDER_LENS_ANALYZE_FLOW_ID',
  'FOUNDER_LENS_CHAT_FLOW_ID',
];

const missing = requiredEnvVars.filter((key) => !process.env[key]);
if (missing.length > 0) {
  console.warn(`[founder-lens] Missing environment variables: ${missing.join(', ')}`);
}

export const config = {
  // ... rest of config
};
kits/agentic/founder-lens/app/layout.tsx (1)

1-2: Consider using next/font for optimized font loading.

The globals.css uses @import url() to load Google Sans from googleapis.com, which bypasses Next.js font optimization (automatic self-hosting, subsetting, and preloading). For better performance, consider using next/font/google:

import { Inter } from "next/font/google";
// or for Google Sans (if available), use a similar approach

const font = Inter({ subsets: ["latin"] });
// Then apply: <body className={font.className}>

This eliminates the external network request and improves Core Web Vitals.

kits/agentic/founder-lens/package.json (1)

15-15: Pin lamatic to a specific version for reproducible builds.

Using "latest" can cause inconsistent builds across environments and may introduce breaking changes unexpectedly. Consider pinning to a specific version (e.g., "lamatic": "^0.3.2").

kits/agentic/founder-lens/components/ChatInterface.tsx (1)

101-109: Consider adding disabled styling to suggested question buttons.

The suggested question buttons check !loading before calling onSendMessage, but they don't visually indicate the disabled state. Users may not realize the buttons are inactive during loading.

♻️ Proposed improvement
 {SUGGESTED_QUESTIONS.map((q, i) => (
   <button
     key={i}
     onClick={() => !loading && onSendMessage(q)}
-    className="w-full text-left p-3.5 rounded-xl text-[12px] font-medium text-white/70 bg-white/5 border border-white/5 hover:bg-white/10 hover:text-white transition-all duration-300"
+    disabled={loading}
+    className="w-full text-left p-3.5 rounded-xl text-[12px] font-medium text-white/70 bg-white/5 border border-white/5 hover:bg-white/10 hover:text-white transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-white/5 disabled:hover:text-white/70"
   >
     {q}
   </button>
 ))}
kits/agentic/founder-lens/components/AuroraBackground.tsx (1)

7-21: mousePosition state is set but never used.

The mousePosition state is updated on every mouse move but is never consumed in the render output. This causes unnecessary re-renders on every mouse movement. If the aurora gradient tracking was intended but not implemented, consider removing this dead code or implementing the intended feature.

♻️ Proposed fix - remove unused state and effect
 export function AuroraBackground({ children }: { children: React.ReactNode }) {
   const canvasRef = useRef<HTMLCanvasElement>(null);
-  const [mousePosition, setMousePosition] = useState({ x: 50, y: 50 });
-
-  // Handle the fluid aurora gradient tracking
-  useEffect(() => {
-    const handleMouseMove = (e: MouseEvent) => {
-      const x = (e.clientX / window.innerWidth) * 100;
-      const y = (e.clientY / window.innerHeight) * 100;
-      const limitedX = 20 + (x * 0.6);
-      const limitedY = 20 + (y * 0.6);
-      setMousePosition({ x: limitedX, y: limitedY });
-    };
-
-    window.addEventListener("mousemove", handleMouseMove);
-    return () => window.removeEventListener("mousemove", handleMouseMove);
-  }, []);
kits/agentic/founder-lens/actions/orchestrate.ts (1)

6-21: Consider basic input validation for server action parameters.

The server action accepts user-provided strings (idea, userId, sessionId) without validation. While the Lamatic SDK likely handles this, adding basic checks would provide better error messages and prevent unnecessary API calls.

♻️ Optional: Add input validation
 export async function analyzeIdea(
   idea: string,
   userId: string,
   sessionId: string
 ): Promise<{ success: boolean; brief?: string; decomposition?: string; error?: string }> {
   try {
+    if (!idea?.trim()) {
+      return { success: false, error: "Idea cannot be empty" };
+    }
+    if (!userId || !sessionId) {
+      return { success: false, error: "Missing user or session identifier" };
+    }
     const flow = config.flows.analyze;
kits/agentic/founder-lens/app/page.tsx (1)

128-136: localStorage.removeItem should be wrapped in try/catch for consistency.

The persist effect wraps localStorage.setItem in try/catch, but handleReset calls localStorage.removeItem without error handling. This could throw in storage-restricted environments.

♻️ Proposed fix
 const handleReset = () => {
   setAppState("idle");
   setBrief("");
   setDecomposition("");
   setMessages([]);
   setError("");
   setCurrentIdea("");
-  localStorage.removeItem("founder-lens-session");
+  try {
+    localStorage.removeItem("founder-lens-session");
+  } catch {
+    // localStorage unavailable — gracefully ignore
+  }
 };
kits/agentic/founder-lens/flows/analyze/config.json (1)

140-170: No retry configuration for external Exa.ai API calls.

All 9 Exa.ai search nodes have "retries": "0", meaning any transient API failure will fail the entire analysis flow. Given that 9 parallel external API calls are made, the probability of at least one failing is non-trivial.

Consider:

  1. Setting retries to 1-2 with appropriate delay for resilience
  2. Adding error handling in the consolidation node to gracefully handle partial failures (empty results from some searches)

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3a4191e1-4d05-487d-af1f-faef6d465d20

📥 Commits

Reviewing files that changed from the base of the PR and between e1ceb47 and db1b262.

⛔ Files ignored due to path filters (3)
  • kits/agentic/founder-lens/app/icon.svg is excluded by !**/*.svg
  • kits/agentic/founder-lens/package-lock.json is excluded by !**/package-lock.json
  • kits/agentic/founder-lens/public/ui-notification.mp3 is excluded by !**/*.mp3
📒 Files selected for processing (31)
  • kits/agentic/founder-lens/.env.example
  • kits/agentic/founder-lens/.gitignore
  • kits/agentic/founder-lens/README.md
  • kits/agentic/founder-lens/actions/orchestrate.ts
  • kits/agentic/founder-lens/app/globals.css
  • kits/agentic/founder-lens/app/layout.tsx
  • kits/agentic/founder-lens/app/page.tsx
  • kits/agentic/founder-lens/components/AuroraBackground.tsx
  • kits/agentic/founder-lens/components/BriefDisplay.tsx
  • kits/agentic/founder-lens/components/ChatInterface.tsx
  • kits/agentic/founder-lens/components/Icons.tsx
  • kits/agentic/founder-lens/components/IdeaForm.tsx
  • kits/agentic/founder-lens/components/PhaseTracker.tsx
  • kits/agentic/founder-lens/config.json
  • kits/agentic/founder-lens/flows/analyze/README.md
  • kits/agentic/founder-lens/flows/analyze/config.json
  • kits/agentic/founder-lens/flows/analyze/inputs.json
  • kits/agentic/founder-lens/flows/analyze/meta.json
  • kits/agentic/founder-lens/flows/chat/README.md
  • kits/agentic/founder-lens/flows/chat/config.json
  • kits/agentic/founder-lens/flows/chat/inputs.json
  • kits/agentic/founder-lens/flows/chat/meta.json
  • kits/agentic/founder-lens/lib/lamatic-client.ts
  • kits/agentic/founder-lens/lib/utils.ts
  • kits/agentic/founder-lens/next-env.d.ts
  • kits/agentic/founder-lens/next.config.js
  • kits/agentic/founder-lens/orchestrate.js
  • kits/agentic/founder-lens/package.json
  • kits/agentic/founder-lens/postcss.config.js
  • kits/agentic/founder-lens/tailwind.config.js
  • kits/agentic/founder-lens/tsconfig.json

@cyber-turtle cyber-turtle changed the title feat: Add Startup-Research AgentKit feat: Add Startup-Research AgentKit [agentkit-challenge] Mar 23, 2026
…ut + retry, BriefDisplay schema fix, model quality disclaimer
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (5)
kits/agentic/founder-lens/components/ChatInterface.tsx (2)

29-49: Markdown renderer doesn't handle edge cases properly.

The renderMarkdown function has a few issues:

  1. Lines 33-38: The order of header checks is wrong — ## is checked before # , but if a line starts with ## , it will never match # . This works by accident but is confusing. More importantly, a line like ### (h3) will fall through to the bold/paragraph logic.
  2. Line 40: The bold regex (\*\*[^*]+\*\*) doesn't handle nested asterisks or empty bold (****).
  3. Empty lines become empty <p> tags with margin, creating inconsistent spacing.
♻️ Suggested improvement for edge cases
 function renderMarkdown(text: string): React.ReactNode {
   const lines = text.split("\n");
   return lines.map((line, i) => {
+    // Skip empty lines
+    if (!line.trim()) {
+      return <br key={i} />;
+    }
     // Headers
-    if (line.startsWith("## ")) {
-      return <h2 key={i} className="text-[14px] font-medium mt-5 mb-2 text-white">{line.slice(3)}</h2>;
-    }
     if (line.startsWith("# ")) {
       return <h1 key={i} className="text-[16px] font-medium mt-5 mb-2 text-white">{line.slice(2)}</h1>;
     }
+    if (line.startsWith("## ")) {
+      return <h2 key={i} className="text-[14px] font-medium mt-5 mb-2 text-white">{line.slice(3)}</h2>;
+    }

168-175: Consider using type="submit" for the send button.

The button uses type="button" and manually calls handleSubmit(), but it's inside a <form>. Using type="submit" would be more semantic and consistent with the form's existing onSubmit handler.

♻️ Proposed change
           <button
-            type="button"
-            onClick={() => handleSubmit()}
+            type="submit"
             disabled={!input.trim() || loading}
kits/agentic/founder-lens/actions/orchestrate.ts (2)

15-20: withTimeout creates a timer that leaks if the promise resolves first.

The timeout is never cleared when the original promise wins the race. While this won't cause functional issues for short-lived server actions, it's a resource leak pattern.

♻️ Proposed fix with cleanup
 async function withTimeout<T>(promise: Promise<T>, timeoutMs: number, errorMessage: string): Promise<T> {
+  let timeoutId: NodeJS.Timeout;
   const timeoutPromise = new Promise<never>((_, reject) => {
-    setTimeout(() => reject(new Error(errorMessage)), timeoutMs);
+    timeoutId = setTimeout(() => reject(new Error(errorMessage)), timeoutMs);
   });
-  return Promise.race([promise, timeoutPromise]);
+  return Promise.race([promise, timeoutPromise]).finally(() => clearTimeout(timeoutId));
 }

39-47: Define explicit response type and pin Lamatic SDK version to prevent fragility from type loss and unexpected breaking changes.

The resData: any typing bypasses TypeScript protections, and the unpinned "lamatic": "latest" dependency means the assumed response shape (result.brief, result.decomposition) could silently break on SDK updates. Consider defining an explicit response interface and pinning the SDK to a specific version.

♻️ Define an explicit response type
+interface AnalyzeFlowResponse {
+  result?: {
+    brief?: string;
+    decomposition?: string;
+  };
+}

-    const resData: any = await withTimeout(
+    const resData = await withTimeout<AnalyzeFlowResponse>(
       lamaticClient.executeFlow(flow.workflowId, { idea, userId, sessionId }),

Also consider pinning the Lamatic SDK version in package.json from "latest" to a specific version (e.g., "^0.x.x") to prevent unexpected breaking changes.

kits/agentic/founder-lens/app/page.tsx (1)

132-140: handleReset should wrap localStorage access in try-catch for consistency.

The persist effect (lines 78-79) gracefully handles localStorage errors, but handleReset doesn't. While unlikely to fail, this is inconsistent.

♻️ Proposed fix
   const handleReset = () => {
     setAppState("idle");
     setBrief("");
     setDecomposition("");
     setMessages([]);
     setError("");
     setCurrentIdea("");
-    localStorage.removeItem("founder-lens-session");
+    try {
+      localStorage.removeItem("founder-lens-session");
+    } catch {
+      // localStorage unavailable — gracefully ignore
+    }
   };

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 15e59be5-221e-4dc3-9809-3958892d38c2

📥 Commits

Reviewing files that changed from the base of the PR and between 30ae731 and fbef69d.

📒 Files selected for processing (7)
  • kits/agentic/founder-lens/actions/orchestrate.ts
  • kits/agentic/founder-lens/app/page.tsx
  • kits/agentic/founder-lens/components/BriefDisplay.tsx
  • kits/agentic/founder-lens/components/ChatInterface.tsx
  • kits/agentic/founder-lens/components/IdeaForm.tsx
  • kits/agentic/founder-lens/components/PhaseTracker.tsx
  • kits/agentic/founder-lens/lib/utils.ts
✅ Files skipped from review due to trivial changes (1)
  • kits/agentic/founder-lens/lib/utils.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • kits/agentic/founder-lens/components/PhaseTracker.tsx
  • kits/agentic/founder-lens/components/IdeaForm.tsx
  • kits/agentic/founder-lens/components/BriefDisplay.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3a623deb-58cd-4c67-a70a-ad579f0976d2

📥 Commits

Reviewing files that changed from the base of the PR and between fbef69d and 4e1b062.

📒 Files selected for processing (1)
  • kits/agentic/founder-lens/components/IdeaForm.tsx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants