Skip to content

feat: Add peer-demo-showcase kit - #295

Merged
akshatvirmani merged 35 commits into
Lamatic:mainfrom
Avad05:main
Jul 27, 2026
Merged

feat: Add peer-demo-showcase kit#295
akshatvirmani merged 35 commits into
Lamatic:mainfrom
Avad05:main

Conversation

@Avad05

@Avad05 Avad05 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

PR Checklist

1. Select Contribution Type

  • Kit (kits/<category>/<kit-name>/)
  • Bundle (bundles/<bundle-name>/)
  • Template (templates/<template-name>/)

2. General Requirements

  • PR is for one project only (no unrelated changes)
  • No secrets, API keys, or real credentials are committed
  • Folder name uses kebab-case and matches the flow ID
  • All changes are documented in README.md (purpose, setup, usage)

3. File Structure (Check what applies)

  • config.json present with valid metadata (name, description, tags, steps, author, env keys)
  • All flows in flows/<flow-name>/ (where applicable) include:
    • config.json (Lamatic flow export)
    • inputs.json
    • meta.json
    • README.md
  • .env.example with placeholder values only (kits only)
  • [] No hand‑edited flow config.json node graphs (changes via Lamatic Studio export)

4. Validation

  • npm install && npm run dev works locally (kits: UI runs; bundles/templates: flows are valid)
  • PR title is clear (e.g., [kit] Add <name> for <use case>)
  • GitHub Actions workflows pass (all checks are green)
  • All CodeRabbit or other PR review comments are addressed and resolved
  • No unrelated files or projects are modified

AgentKit Challenge Submission

AI-Powered Hackathon Showcase & Sponsor Track Matcher Kit built with Next.js 15, Lamatic AI Engine, Framer Motion, and TailwindCSS.

  • Added new Kit: kits/peer-demo-showcase (AI-powered “Peer Demo Showcase” + sponsor-track matcher)
    • Kit docs/config
      • kits/peer-demo-showcase/README.md
      • kits/peer-demo-showcase/agent.md
      • kits/peer-demo-showcase/constitutions/default.md
      • kits/peer-demo-showcase/lamatic.config.ts
      • kits/peer-demo-showcase/.env.example
      • kits/peer-demo-showcase/.gitignore
    • App/template: kits/peer-demo-showcase/apps
      • Docs/agent guidance
        • kits/peer-demo-showcase/apps/README.md
        • kits/peer-demo-showcase/apps/AGENTS.md
        • kits/peer-demo-showcase/apps/CLAUDE.md
        • kits/peer-demo-showcase/apps/.env.example
      • Tooling/config
        • kits/peer-demo-showcase/apps/.gitignore
        • kits/peer-demo-showcase/apps/tsconfig.json
        • kits/peer-demo-showcase/apps/eslint.config.mjs
        • kits/peer-demo-showcase/apps/next.config.ts
        • kits/peer-demo-showcase/apps/postcss.config.mjs
        • kits/peer-demo-showcase/apps/package.json
        • kits/peer-demo-showcase/apps/package-lock.json
      • Security/routing + server actions
        • kits/peer-demo-showcase/apps/proxy.ts (route guards for /admin/* and /judge/* via signed session cookies)
        • kits/peer-demo-showcase/apps/actions/auth.ts (admin + judge login/logout; cookie setup)
        • kits/peer-demo-showcase/apps/actions/orchestrate.ts (submission/sponsor/judge orchestration + confirmation email sending)
        • kits/peer-demo-showcase/apps/lib/lamatic-client.ts (Lamatic client + flow IDs)
        • kits/peer-demo-showcase/apps/lib/session.ts (stateless signed session tokens)
        • kits/peer-demo-showcase/apps/lib/utils.ts (cn helper)
      • Next.js UI/pages/layout
        • kits/peer-demo-showcase/apps/app/layout.tsx
        • kits/peer-demo-showcase/apps/globals.css
        • kits/peer-demo-showcase/apps/app/page.tsx (submit-project wizard)
        • kits/peer-demo-showcase/apps/app/gallery/page.tsx (public gallery, countdowns, winner mode, upvotes)
        • kits/peer-demo-showcase/apps/app/project/[id]/page.tsx (project detail + upvote + resubmit)
        • kits/peer-demo-showcase/apps/app/admin/login/page.tsx
        • kits/peer-demo-showcase/apps/app/admin/page.tsx (admin console: sponsors, statuses/winners, judges, event config)
        • kits/peer-demo-showcase/apps/app/judge/login/page.tsx
        • kits/peer-demo-showcase/apps/app/judge/page.tsx (judge rubric scoring + inactivity logout)
        • kits/peer-demo-showcase/apps/app/favicon.ico
      • UI components
        • kits/peer-demo-showcase/apps/components/Navbar.tsx
        • kits/peer-demo-showcase/apps/components/ThemeToggle.tsx
        • kits/peer-demo-showcase/apps/components/SmoothScroll.tsx
        • kits/peer-demo-showcase/apps/components/CursorGlow.tsx
        • kits/peer-demo-showcase/apps/components/MagneticButton.tsx
        • kits/peer-demo-showcase/apps/components/TiltCard.tsx
        • kits/peer-demo-showcase/apps/components/Dropdown.tsx
        • kits/peer-demo-showcase/apps/components/SponsorMarquee.tsx
        • kits/peer-demo-showcase/apps/components/WaveBackground.tsx
        • kits/peer-demo-showcase/apps/components/ui/ai-agent-pipeline.tsx
        • kits/peer-demo-showcase/apps/components/ui/gooey-text-morphing.tsx
      • Static prototype (“community showcase”)
        • kits/peer-demo-showcase/apps/community-showcase/index.html
        • kits/peer-demo-showcase/apps/community-showcase/desktop.html
        • kits/peer-demo-showcase/apps/community-showcase/mobile.html
        • kits/peer-demo-showcase/apps/community-showcase/package.json
        • kits/peer-demo-showcase/apps/community-showcase/package-lock.json
      • Public assets
        • kits/peer-demo-showcase/apps/public/file.svg
        • kits/peer-demo-showcase/apps/public/globe.svg
        • kits/peer-demo-showcase/apps/public/next.svg
        • kits/peer-demo-showcase/apps/public/vercel.svg
        • kits/peer-demo-showcase/apps/public/window.svg
    • Lamatic flow definitions (kits/peer-demo-showcase/flows/)
      • flow.json check: no flow.json files exist for this kit/anywhere in the repo.
      • Node/edge types used (from flows/*.ts)
        • Node types: triggerNode, dynamicNode, responseNode, plus showcase-submission extras model, select, monacoText
        • Edge types: defaultEdge, responseEdge
      • High-level flow behaviors
        • showcase-submission-flow.ts
          • triggerNode accepts an API request (GitHub URL + builder/email)
          • Uses a Firecrawl scrape (README markdown) and LLM/model steps (including model + monacoText + select) to extract project metadata and pick the best sponsor/breakout
          • dynamicNode inserts into showcase_submissions
          • responseNode returns a structured JSON payload (project + match result)
        • submissions-manager-flow.ts
          • triggerNode accepts action + submission fields
          • dynamicNode performs insert/update/delete/select against showcase_submissions based on action (includes upvotes/sponsor/status updates)
          • responseNode returns submissions JSON
        • sponsors-manager-flow.ts
          • triggerNode accepts action + sponsor fields
          • dynamicNode performs insert/update/select against sponsors based on action
          • responseNode returns sponsors JSON
        • judging-manager-flow.ts
          • triggerNode accepts judging actions + rubric/notes
          • dynamicNode performs insert (for scoring/judge add) or select (for scores)
          • responseNode returns scores JSON
        • event-config-flow.ts
          • triggerNode accepts action/key/value
          • dynamicNode upserts or selects from event_config
          • responseNode returns config JSON
    • LLM assets for sponsor/project matching
      • Prompts
        • kits/peer-demo-showcase/prompts/showcase-submission-flow_instructor-llmnode-297_system_0.md
        • kits/peer-demo-showcase/prompts/showcase-submission-flow_instructor-llmnode-517_system_0.md
      • Model configs
        • kits/peer-demo-showcase/model-configs/showcase-submission-flow_instructor-llmnode-297_generative-model-name.ts
        • kits/peer-demo-showcase/model-configs/showcase-submission-flow_instructor-llmnode-517_generative-model-name.ts

Avad05 and others added 12 commits July 17, 2026 17:53
- Created a new community showcase app with a package.json file.
- Implemented CursorGlow component for a glowing cursor effect.
- Developed MagneticButton component for interactive button animations.
- Added Navbar component with scroll-based styling.
- Introduced SmoothScroll component for smooth scrolling experience.
- Created TiltCard component for 3D tilt effects on hover.
- Added utility function for class name merging.
- Implemented flows for managing sponsors and project submissions, including add, get, and upvote functionalities.
- Created a new community showcase app with a package.json file.
- Implemented CursorGlow component for a glowing cursor effect.
- Developed MagneticButton component for interactive button animations.
- Added Navbar component with scroll-based styling.
- Introduced SmoothScroll component for smooth scrolling experience.
- Created TiltCard component for 3D tilt effects on hover.
- Added utility function for class name merging.
- Implemented flows for managing sponsors and project submissions, including add, get, and upvote functionalities.
…configuration, judging management, sponsors management, and submissions management

- Deleted upvote-project-flow.ts as it is no longer needed.
- Updated lamatic.config.ts to reflect new flow structure and removed references to deleted flow.
- Added new Judge Login and Dashboard pages for enhanced judge experience.
- Created consolidated flows for event configuration, judging management, sponsors management, and submissions management to streamline operations.
Added Loom video link and new section for Lamatic.ai flows.
feat(peer-demo-showcase): AI-Powered Hackathon Showcase & Sponsor Matcher Kit
Added a 'Live' section with the deployment link.
@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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

Changes

The pull request adds a complete Peer Demo Showcase kit with Lamatic-backed project matching, public submission and gallery flows, judge scoring, admin management, authentication, animated UI components, static showcase prototypes, configuration, and documentation.

Peer Demo Showcase platform

Layer / File(s) Summary
Workflow and orchestration foundation
kits/peer-demo-showcase/flows/*, kits/peer-demo-showcase/apps/actions/orchestrate.ts, kits/peer-demo-showcase/apps/lib/*, kits/peer-demo-showcase/prompts/*
Adds submission matching, sponsor assignment, persistence fallbacks, scoring, sponsor management, event configuration, sessions, and Lamatic workflow definitions.
Authenticated administration and judging
kits/peer-demo-showcase/apps/actions/auth.ts, kits/peer-demo-showcase/apps/app/admin/*, kits/peer-demo-showcase/apps/app/judge/*, kits/peer-demo-showcase/apps/proxy.ts
Adds admin and judge authentication, protected routes, event controls, judge management, rubric scoring, score auditing, and winner selection.
Public submission and showcase experiences
kits/peer-demo-showcase/apps/app/page.tsx, kits/peer-demo-showcase/apps/app/gallery/page.tsx, kits/peer-demo-showcase/apps/app/project/[id]/page.tsx
Adds project submission, AI match results, countdowns, gallery filtering, upvotes, project details, and resubmission flows.
Application shell and interactive UI
kits/peer-demo-showcase/apps/app/layout.tsx, kits/peer-demo-showcase/apps/app/globals.css, kits/peer-demo-showcase/apps/components/*
Adds global layout, theme styling, navigation, smooth scrolling, animated backgrounds, reusable controls, and pipeline visualizations.
Kit configuration and showcase assets
kits/peer-demo-showcase/README.md, kits/peer-demo-showcase/apps/README.md, kits/peer-demo-showcase/apps/community-showcase/*, kits/peer-demo-showcase/apps/package.json, kits/peer-demo-showcase/lamatic.config.ts
Adds setup documentation, environment instructions, static community showcase pages, package configuration, kit metadata, model configuration, agent guidance, and project constitution.

Suggested reviewers: amanintech, d-pamneja

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise and accurately describes the main change: adding the peer-demo-showcase kit.
Description check ✅ Passed The description follows the checklist template, covers all required sections, and includes the challenge submission details.
✨ 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.

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

:robot_face: AgentKit Structural Validation

New Contributions Detected

  • Kit: kits/peer-demo-showcase

Check Results

Check Status
No edits to existing kits ✅ Pass
Required root files present ✅ Pass
Flow .ts files present ✅ Pass
lamatic.config.ts valid ✅ Pass
No changes outside kits/ ✅ Pass

🎉 All checks passed! This contribution follows the AgentKit structure.

@github-actions

Copy link
Copy Markdown
Contributor

Failure recorded at 2026-07-24T14:00:21Z UTC. If this PR is not fixed within 4 weeks it will be automatically closed.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 23

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/peer-demo-showcase/apps/.gitignore`:
- Around line 33-35: Update the ignore rules near `.env*` and `.env.local` to
explicitly unignore the required `.env.example` template by adding a negation
rule after the broad pattern, ensuring it remains commit-able.

In `@kits/peer-demo-showcase/apps/actions/orchestrate.ts`:
- Around line 118-140: Update submitProject and resubmitProject to validate
githubUrl, contactEmail, and hostedLink server-side before any submission,
resubmission, or Lamatic crawl logic runs. Move or reuse the existing page.tsx
validation rules so direct callers cannot bypass GitHub URL, email, or
hosted-link checks, and reject invalid inputs immediately.
- Around line 517-539: The verifyJudgeCredentials function must fail closed when
neither JUDGE_PASSWORD nor ADMIN_PASSWORD is configured. Remove the literal
'judge' fallback, require a configured password before validating credentials,
and preserve the existing valid/invalid response shape while ensuring missing
configuration always returns valid: false.

In `@kits/peer-demo-showcase/apps/app/admin/page.tsx`:
- Around line 83-84: Update the initialization around setDeadline and
setWinnerDeclarationTime to convert stored ISO/UTC timestamps into local Date
values before formatting them for the datetime-local inputs, rather than slicing
the UTC string directly. Preserve empty values, and ensure the corresponding
save logic parses these input values as local time before converting them to ISO
for storage.

In `@kits/peer-demo-showcase/apps/app/layout.tsx`:
- Around line 68-79: Update the Toaster configuration in the layout component to
use the app’s class-based light/dark theme state instead of the OS preference;
replace the fixed theme="system" setting with the theme value or integration
used by the existing html class toggle and preserve the current toast styling
options.

In `@kits/peer-demo-showcase/apps/components/Dropdown.tsx`:
- Around line 50-64: Harden the Dropdown accessibility around the trigger and
its panel: add aria-expanded and aria-haspopup to the trigger, assign listbox
and option roles with aria-selected to the panel and option buttons, and support
Escape-to-close with focus returned to the trigger. Update the Dropdown
component’s keyboard and focus handling while preserving existing selection and
toggle behavior.

In `@kits/peer-demo-showcase/apps/components/MagneticButton.tsx`:
- Around line 29-38: Update the motion.button prop handling in MagneticButton so
caller-provided onMouseMove and onMouseLeave handlers are preserved and invoked
alongside the internal handleMouseMove and reset logic. Merge the handlers
explicitly while retaining the existing magnetic behavior and avoid allowing the
internal props to overwrite caller callbacks.

In `@kits/peer-demo-showcase/apps/components/Navbar.tsx`:
- Around line 80-86: Update the mobile menu toggle button in Navbar to expose
its state with aria-expanded={isMobileMenuOpen} and associate it with the
dropdown using aria-controls="mobile-nav-panel"; add the matching
id="mobile-nav-panel" to the dropdown motion.div. Preserve the existing toggle
behavior and label.

In `@kits/peer-demo-showcase/apps/components/SponsorMarquee.tsx`:
- Line 24: Mark the duplicated marquee sponsor content as hidden from assistive
technologies by applying aria-hidden to the rendered duplicate list or its
containing element in SponsorMarquee, covering the duplicatedSponsors rendering
and associated marquee items while preserving the visual loop.

In `@kits/peer-demo-showcase/apps/components/ThemeToggle.tsx`:
- Around line 6-26: Add a blocking inline theme-initialization script in
layout.tsx that runs before hydration, reads the stored theme preference, and
applies the matching class to document.documentElement while removing the
opposite class. Keep ThemeToggle’s existing post-hydration synchronization,
ensuring the initial HTML class reflects a stored light preference and prevents
a flash.
- Around line 9-40: Extract the duplicated document theme class add/remove
sequence from the mount effect and toggleTheme into a shared helper, then call
that helper from both paths while preserving their existing state and
localStorage behavior.

In `@kits/peer-demo-showcase/apps/components/TiltCard.tsx`:
- Around line 45-56: Update the motion.div props in TiltCard so caller props are
spread before the component-managed values, then merge any caller-provided style
with rotateY, rotateX, and transformStyle while ensuring handleMouseMove and
handleMouseLeave remain active. Preserve non-conflicting caller props and
prevent them from overriding the tilt behavior.

In `@kits/peer-demo-showcase/apps/components/ui/ai-agent-pipeline.tsx`:
- Line 1: Replace the hardcoded hex/RGBA styling with the existing theme CSS
variables so the component responds to light and dark modes. Update
getStatusColor and all inline fill/stroke/background values in the pipeline, use
theme variables for WaveBackground gradient stopColor values, and replace
Navbar’s arbitrary hex background utility with a CSS-variable-backed Tailwind
token while preserving the existing visual roles.
- Around line 486-500: The stats footer in the component containing the error
prop must reflect failure state instead of always displaying success. Update the
API STATUS and LATENCY values near pipelinesExecuted so they use error when
present, showing an appropriate failure status and error-state latency while
preserving the existing 200 OK and 342ms values for successful, non-loading
executions.

In `@kits/peer-demo-showcase/apps/lib/session.ts`:
- Around line 10-23: The session implementation is process-local, so
authentication fails across runtimes, instances, and restarts. In
kits/peer-demo-showcase/apps/lib/session.ts#L10-L23, replace the
globalThis-backed Maps with the shared persistent store used by the application
or a stateless signed-cookie mechanism; in
kits/peer-demo-showcase/apps/proxy.ts#L5-L34, ensure proxy validation uses that
same shared/stateless mechanism and confirm its runtime compatibility; in
kits/peer-demo-showcase/apps/actions/auth.ts#L41-L71, persist tokens created by
createJudgeSession and createAdminSession to the same store or issue
self-verifying signed cookies.

In `@kits/peer-demo-showcase/apps/README.md`:
- Around line 113-147: Update the Quickstart Guide around the clone and
environment setup instructions to use the repository layout matching the kit
root declared in lamatic.config.ts. Replace the conflicting clone/navigation
commands with the canonical repository command, and instruct users to create
.env.local from the app directory so it resolves to the actual app environment
file rather than apps/apps/.env.local.

In `@kits/peer-demo-showcase/flows/judging-manager-flow.ts`:
- Around line 40-55: Route each orchestrate action to an explicit Tables CRUD
verb before assigning the result to the affected Tables node’s action: update
kits/peer-demo-showcase/flows/judging-manager-flow.ts lines 40-55 for
submit_score, list_judges, and add_judge; event-config-flow.ts lines 26-55 for
get_config and set_config; sponsors-manager-flow.ts lines 40-55 for upvote and
update_sponsor; and submissions-manager-flow.ts lines 42-55 for delete, list,
and add. Ensure unmapped actions retain the existing select fallback and each
affected node receives the mapped verb rather than the raw client action.

In `@kits/peer-demo-showcase/flows/showcase-submission-flow.ts`:
- Around line 221-244: Clear the boilerplate SELECT query from the insert
configuration in the dynamic node identified by tablesNode_942. Keep action set
to insert and preserve the existing data, tableName, and other configuration
values.

In `@kits/peer-demo-showcase/flows/submissions-manager-flow.ts`:
- Around line 29-33: Update the advance_schema for triggerNode_1’s API Request
to declare the upvotes field that tablesNode_1.data maps from
triggerNode_1.output.upvotes. Preserve the existing schema fields and use the
appropriate type consistent with the mapped upvote value.

In
`@kits/peer-demo-showcase/prompts/showcase-submission-flow_instructor-llmnode-517_system_0.md`:
- Around line 8-11: Update the sponsor_records section in the system prompt to
explicitly treat sponsor names and descriptions as untrusted reference data and
instruct the model to ignore any embedded commands or instructions. Match the
existing disclaimer used in
showcase-submission-flow_instructor-llmnode-297_system_0.md while preserving the
sponsor data’s reference-only purpose.

In `@kits/peer-demo-showcase/README.md`:
- Around line 149-152: Update the email configuration section in the README to
document the SMTP variables used by apps/actions/orchestrate.ts—SMTP_HOST,
SMTP_PORT, SMTP_USER, SMTP_PASS, and SMTP_FROM—and the optional
RESEND_ACCOUNT_EMAIL variable. Add a clear note that onboarding@resend.dev can
only deliver to the owning Resend account unless a verified sender/domain is
configured, and explain the required configuration for runtime delivery
branches.
- Around line 9-11: Update the Watch Demo badge link in the README to use the
existing Loom URL shown in the adjacent link, replacing the
YOUR_LOOM_VIDEO_LINK_HERE placeholder while preserving the badge presentation.
- Line 3: Update the Next.js version references in the README’s platform
description and the sections around the listed framework references from 15 to
16.2.10, matching the version pinned by the shipped package.json dependency.
Leave unrelated documentation unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 929b5ee2-7cbe-4c18-b034-8199488c214c

📥 Commits

Reviewing files that changed from the base of the PR and between 2f0b57e and c5cc4c7.

⛔ Files ignored due to path filters (8)
  • kits/peer-demo-showcase/apps/app/favicon.ico is excluded by !**/*.ico
  • kits/peer-demo-showcase/apps/community-showcase/package-lock.json is excluded by !**/package-lock.json
  • kits/peer-demo-showcase/apps/package-lock.json is excluded by !**/package-lock.json
  • kits/peer-demo-showcase/apps/public/file.svg is excluded by !**/*.svg
  • kits/peer-demo-showcase/apps/public/globe.svg is excluded by !**/*.svg
  • kits/peer-demo-showcase/apps/public/next.svg is excluded by !**/*.svg
  • kits/peer-demo-showcase/apps/public/vercel.svg is excluded by !**/*.svg
  • kits/peer-demo-showcase/apps/public/window.svg is excluded by !**/*.svg
📒 Files selected for processing (53)
  • kits/peer-demo-showcase/.gitignore
  • kits/peer-demo-showcase/README.md
  • kits/peer-demo-showcase/agent.md
  • kits/peer-demo-showcase/apps/.gitignore
  • kits/peer-demo-showcase/apps/AGENTS.md
  • kits/peer-demo-showcase/apps/CLAUDE.md
  • kits/peer-demo-showcase/apps/README.md
  • kits/peer-demo-showcase/apps/actions/auth.ts
  • kits/peer-demo-showcase/apps/actions/orchestrate.ts
  • kits/peer-demo-showcase/apps/app/admin/login/page.tsx
  • kits/peer-demo-showcase/apps/app/admin/page.tsx
  • kits/peer-demo-showcase/apps/app/gallery/page.tsx
  • kits/peer-demo-showcase/apps/app/globals.css
  • kits/peer-demo-showcase/apps/app/judge/login/page.tsx
  • kits/peer-demo-showcase/apps/app/judge/page.tsx
  • kits/peer-demo-showcase/apps/app/layout.tsx
  • kits/peer-demo-showcase/apps/app/page.tsx
  • kits/peer-demo-showcase/apps/app/project/[id]/page.tsx
  • kits/peer-demo-showcase/apps/community-showcase/desktop.html
  • kits/peer-demo-showcase/apps/community-showcase/index.html
  • kits/peer-demo-showcase/apps/community-showcase/mobile.html
  • kits/peer-demo-showcase/apps/community-showcase/package.json
  • kits/peer-demo-showcase/apps/components/CursorGlow.tsx
  • kits/peer-demo-showcase/apps/components/Dropdown.tsx
  • kits/peer-demo-showcase/apps/components/MagneticButton.tsx
  • kits/peer-demo-showcase/apps/components/Navbar.tsx
  • kits/peer-demo-showcase/apps/components/SmoothScroll.tsx
  • kits/peer-demo-showcase/apps/components/SponsorMarquee.tsx
  • kits/peer-demo-showcase/apps/components/ThemeToggle.tsx
  • kits/peer-demo-showcase/apps/components/TiltCard.tsx
  • kits/peer-demo-showcase/apps/components/WaveBackground.tsx
  • kits/peer-demo-showcase/apps/components/ui/ai-agent-pipeline.tsx
  • kits/peer-demo-showcase/apps/components/ui/gooey-text-morphing.tsx
  • kits/peer-demo-showcase/apps/eslint.config.mjs
  • kits/peer-demo-showcase/apps/lib/lamatic-client.ts
  • kits/peer-demo-showcase/apps/lib/session.ts
  • kits/peer-demo-showcase/apps/lib/utils.ts
  • kits/peer-demo-showcase/apps/next.config.ts
  • kits/peer-demo-showcase/apps/package.json
  • kits/peer-demo-showcase/apps/postcss.config.mjs
  • kits/peer-demo-showcase/apps/proxy.ts
  • kits/peer-demo-showcase/apps/tsconfig.json
  • kits/peer-demo-showcase/constitutions/default.md
  • kits/peer-demo-showcase/flows/event-config-flow.ts
  • kits/peer-demo-showcase/flows/judging-manager-flow.ts
  • kits/peer-demo-showcase/flows/showcase-submission-flow.ts
  • kits/peer-demo-showcase/flows/sponsors-manager-flow.ts
  • kits/peer-demo-showcase/flows/submissions-manager-flow.ts
  • kits/peer-demo-showcase/lamatic.config.ts
  • kits/peer-demo-showcase/model-configs/showcase-submission-flow_instructor-llmnode-297_generative-model-name.ts
  • kits/peer-demo-showcase/model-configs/showcase-submission-flow_instructor-llmnode-517_generative-model-name.ts
  • kits/peer-demo-showcase/prompts/showcase-submission-flow_instructor-llmnode-297_system_0.md
  • kits/peer-demo-showcase/prompts/showcase-submission-flow_instructor-llmnode-517_system_0.md

Comment thread kits/peer-demo-showcase/apps/.gitignore Outdated
Comment thread kits/peer-demo-showcase/apps/actions/orchestrate.ts
Comment thread kits/peer-demo-showcase/apps/actions/orchestrate.ts
Comment thread kits/peer-demo-showcase/apps/app/admin/page.tsx Outdated
Comment thread kits/peer-demo-showcase/apps/app/layout.tsx
Comment thread kits/peer-demo-showcase/flows/submissions-manager-flow.ts
Comment thread kits/peer-demo-showcase/README.md Outdated
Comment thread kits/peer-demo-showcase/README.md Outdated
Comment thread kits/peer-demo-showcase/README.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/peer-demo-showcase/apps/.env.example`:
- Line 18: Replace the default ADMIN_PASSWORD value in
kits/peer-demo-showcase/apps/.env.example:18-18 and
kits/peer-demo-showcase/.env.example:18-18 with a conspicuous non-credential
placeholder, and update the app’s startup configuration validation to reject
unset, placeholder, or known default admin passwords.
- Line 4: Update the LAMATIC_API_URL value in the environment template to use
the same generic placeholder as kits/peer-demo-showcase/.env.example, rather
than the contributor-specific Lamatic host, so users configuring only the
credentials and IDs target the intended endpoint.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0f091447-3ca4-4890-ac40-22416676030a

📥 Commits

Reviewing files that changed from the base of the PR and between c5cc4c7 and 66acd79.

📒 Files selected for processing (3)
  • kits/peer-demo-showcase/.env.example
  • kits/peer-demo-showcase/apps/.env.example
  • kits/peer-demo-showcase/apps/.gitignore

Comment thread kits/peer-demo-showcase/apps/.env.example Outdated
Comment thread kits/peer-demo-showcase/apps/.env.example Outdated
@coderabbitai
coderabbitai Bot requested a review from d-pamneja July 24, 2026 18:02
Avad05 and others added 2 commits July 27, 2026 15:41
…cope submissions data payload per action, use explicit action allowlist with fail-close fallback
fix(peer-demo-showcase): remove upvote from sponsor update routing, s…
@github-actions

Copy link
Copy Markdown
Contributor

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/peer-demo-showcase/flows/sponsors-manager-flow.ts`:
- Line 44: Update the table payloads at
kits/peer-demo-showcase/flows/sponsors-manager-flow.ts:44-44 and
kits/peer-demo-showcase/flows/submissions-manager-flow.ts:44-44 to serialize
interpolated field values safely rather than hand-building JSON with raw values.
In the submissions flow, ensure upvotes is serialized as a numeric value, not a
quoted string; apply the corresponding safe serialization to all sponsor and
submission fields.

In `@kits/peer-demo-showcase/flows/submissions-manager-flow.ts`:
- Around line 47-48: Update the action mapping in submissions-manager-flow so
documented upvote and update_sponsor actions receive explicit handling with
their required where/data or mutation behavior, and prevent any other
unsupported action from falling through to select. Preserve the existing delete,
add, update_status, and read behavior while ensuring unrecognized actions are
rejected before tablesNode_1 executes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5adbdf63-961d-4d75-8036-8c51e27dd1a8

📥 Commits

Reviewing files that changed from the base of the PR and between 6521d3a and cf55136.

📒 Files selected for processing (2)
  • kits/peer-demo-showcase/flows/sponsors-manager-flow.ts
  • kits/peer-demo-showcase/flows/submissions-manager-flow.ts

Comment thread kits/peer-demo-showcase/flows/sponsors-manager-flow.ts
Comment thread kits/peer-demo-showcase/flows/submissions-manager-flow.ts Outdated
Avad05 and others added 10 commits July 27, 2026 16:04
docs(peer-demo-showcase): include SMTP_FROM in README email delivery …
fix(peer-demo-showcase): serialize upvotes as JSON number without quo…
… support multiple actions and improve query conditions
fix(peer-demo-showcase): enhance data handling in submissions flow to…
fix(peer-demo-showcase): add input sanitization for Lamatic flow exec…
fix(peer-demo-showcase): add ID validation to prevent injection vulne…
@Avad05

Avad05 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai summary

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Summary regeneration triggered.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="Lamatic/AgentKit"
pr="295"

echo "== Pull request metadata =="
gh pr view "$pr" --repo "$repo" --json state,isDraft,mergeable,reviewDecision,statusCheckRollup,reviews \
  --jq '{
    state,
    isDraft,
    mergeable,
    reviewDecision,
    checks: [
      .statusCheckRollup[]? |
      {
        name,
        status,
        conclusion: (.conclusion // "pending"),
        workflowName: (.workflowName // null)
      }
    ],
    reviews: [
      .reviews[]? |
      {
        author: .author.login,
        state,
        submittedAt
      }
    ]
  }'

echo
echo "== Unresolved review threads =="
gh api graphql \
  -F owner="Lamatic" \
  -F name="AgentKit" \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          comments(first: 1) {
            nodes {
              author { login }
              body
              path
              line
            }
          }
        }
      }
    }
  }
}' \
  --jq '[
    .data.repository.pullRequest.reviewThreads.nodes[]
    | select(.isResolved == false)
    | {
        author: .comments.nodes[0].author.login,
        path: .comments.nodes[0].path,
        line: .comments.nodes[0].line,
        body: .comments.nodes[0].body
      }
  ]'

Length of output: 12117


@Avad05mission status for PR #295:

  • PR: Open, not a draft, and currently mergeable.
  • Validation: validate (Validate PR Contribution) is passing.
  • Review gate: Changes requested is still the active review decision.
  • Unresolved CodeRabbit threads: 2
    1. Email HTML escaping in kits/peer-demo-showcase/apps/actions/orchestrate.ts (Line 99). The comment states it was addressed in commits 2e5b125 through 64ae210, but its review thread has not been resolved.
    2. ID predicate hardening in kits/peer-demo-showcase/flows/sponsors-manager-flow.ts and kits/peer-demo-showcase/flows/submissions-manager-flow.ts (Line 47). This remains an active security finding.

One additional check-rollup entry is shown as unnamed/pending, so GitHub does not expose enough information to identify it from the PR status output.

Conclusion: validation is green and the branch can merge mechanically, but the PR remains blocked from approval by the active Changes Requested decision and the two unresolved review threads.

@Avad05 Avad05 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

Comment thread kits/peer-demo-showcase/apps/actions/orchestrate.ts
Comment thread kits/peer-demo-showcase/flows/submissions-manager-flow.ts
Comment thread kits/peer-demo-showcase/flows/showcase-submission-flow.ts
Comment thread kits/peer-demo-showcase/flows/judging-manager-flow.ts
Comment thread kits/peer-demo-showcase/apps/README.md
Comment thread kits/peer-demo-showcase/apps/lib/session.ts
Comment thread kits/peer-demo-showcase/apps/lib/session.ts
Comment thread kits/peer-demo-showcase/apps/components/TiltCard.tsx
Comment thread kits/peer-demo-showcase/apps/components/ThemeToggle.tsx
Comment thread kits/peer-demo-showcase/apps/components/ThemeToggle.tsx
@Avad05

Avad05 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai summary

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Summary regeneration triggered.

@Avad05 Avad05 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

.

@Avad05

Avad05 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Avad05

Avad05 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai what requested change is still preventing this PR from being approved? I have addressed and resolved all previous CodeRabbit comments. Please point me to the exact file and line that still needs changes.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="Lamatic/AgentKit"
owner="${repo%%/*}"
name="${repo#*/}"
pr="295"

echo "== Pull-request review state =="
gh pr view "$pr" --repo "$repo" \
  --json state,isDraft,mergeable,reviewDecision,headRefOid,reviews,statusCheckRollup \
  --jq '{
    state,
    isDraft,
    mergeable,
    reviewDecision,
    headRefOid,
    reviews: [.reviews[]? | {
      author: .author.login,
      state,
      submittedAt,
      body
    }],
    checks: [.statusCheckRollup[]? | {
      name,
      status,
      conclusion: (.conclusion // "pending")
    }]
  }'

echo
echo "== Unresolved review threads =="
gh api graphql \
  -F owner="$owner" \
  -F name="$name" \
  -F number="$pr" \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          id
          isResolved
          isOutdated
          path
          line
          originalLine
          comments(first: 20) {
            nodes {
              author { login }
              body
              createdAt
              url
              path
              line
              originalLine
            }
          }
        }
      }
    }
  }
}' \
  --jq '[
    .data.repository.pullRequest.reviewThreads.nodes[]
    | select(.isResolved == false)
    | {
        id,
        isOutdated,
        path,
        line,
        originalLine,
        comments: [
          .comments.nodes[] | {
            author: .author.login,
            body,
            createdAt,
            url,
            path,
            line,
            originalLine
          }
        ]
      }
  ]'

echo
echo "== Candidate file map =="
fd -a -t f '^(orchestrate|sponsors-manager-flow|submissions-manager-flow)\.(ts|tsx)$' .

Length of output: 61628


@Avad05 — mission debrief: there is no new active code finding in the current review state.

The approval is still blocked by a stale CHANGES_REQUESTED review decision and one unresolved but outdated CodeRabbit thread:

  • Thread: PRRT_kwDOP6MR1c6UAjDU
  • Status: isOutdated: true
  • Historical location: kits/peer-demo-showcase/flows/sponsors-manager-flow.ts, original Line 47
  • Consolidated companion location: kits/peer-demo-showcase/flows/submissions-manager-flow.ts, original Line 47
  • Original concern: raw id interpolation in Lamatic Tables-node where predicates.

Because GitHub marks that thread as outdated, those original line references do not establish that the current PR head needs another change in either flow file. The PR is mergeable and all three validate checks are successful; the remaining blocker is the unresolved historical thread/review state itself.

In short: there is no additional file/line I can point to as currently requiring a code change. The stale thread and the prior CodeRabbit “Changes Requested” decision need to be cleared before approval can proceed.

@akshatvirmani akshatvirmani added the tier-3 Pass label Jul 27, 2026
@akshatvirmani
akshatvirmani merged commit 445382f into Lamatic:main Jul 27, 2026
3 of 4 checks passed
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.

2 participants