Skip to content

feat(dashboard): add motion to homepage#81

Merged
duyet merged 3 commits into
mainfrom
codex/agentstate-homepage-motion
May 17, 2026
Merged

feat(dashboard): add motion to homepage#81
duyet merged 3 commits into
mainfrom
codex/agentstate-homepage-motion

Conversation

@duyet
Copy link
Copy Markdown
Owner

@duyet duyet commented May 17, 2026

Summary

  • add Motion/Framer Motion wrappers to the AgentState homepage with reduced-motion support
  • keep the shadcn-native landing composition while adding section/card motion
  • expose agents.md in dashboard static output and clean dashboard Biome hook naming/formatting

Verification

  • bunx biome check packages/dashboard/src/
  • cd packages/dashboard && bunx tsc --noEmit
  • cd packages/dashboard && bun run build
  • browser QA on local built output: desktop/mobile, light/dark, dashboard/docs/agents.md CTAs

Summary by Sourcery

Add animated motion to the dashboard landing page while cleaning up dashboard hooks/components and exposing the agents.md content in the static output.

New Features:

  • Introduce motion-based sections and cards across the landing page (hero, features, how-it-works, use-cases, code examples, API endpoints) with reduced-motion support via a shared motion config.
  • Expose the agents.md documentation file via the dashboard’s public assets and wire CTAs to the static markdown output.

Enhancements:

  • Refine dashboard hooks and components by renaming and re-exporting them without leading underscores for clearer public usage.
  • Update dashboard project, conversations, domains, and organization members screens to use the new hook/component names and simplify some layout/formatting.
  • Add shared landing motion utilities for consistent entrance and hover animations across homepage sections.

Build:

  • Add the motion library dependency to the dashboard package for React-based animations.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added smooth animations and transitions to landing page components (hero, features, how-it-works, use cases, code examples, and API endpoints).
    • Added new agents documentation.
  • Bug Fixes & Improvements

    • Enhanced motion and animation performance across dashboard UI.
    • Refined styling and layout refinements for improved visual consistency.

Review Change Stack

Add Motion wrappers and reduced-motion configuration for the AgentState landing page.

Keep the shadcn-native homepage structure while adding staggered section reveals and card hover motion.

Expose agents.md in dashboard static output and clean dashboard Biome hook naming/formatting so the full dashboard check passes.

Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented May 17, 2026

Reviewer's Guide

Adds motion-powered animations to the marketing/landing parts of the dashboard using Motion (Framer Motion compat) with reduced-motion support, wires them through a shared motion config and variants, exposes agents.md as a static asset, and normalizes various dashboard hook and component names for clearer exports and usage.

File-Level Changes

Change Details Files
Introduce reusable motion primitives and variants for the landing/marketing UI and wrap homepage sections/cards with them.
  • Add MotionDiv, MotionHeader, MotionSection wrappers from motion/react-client and export shared landingContainer, landingItem, landingCard, landingHover variants.
  • Wrap Hero, Features, HowItWorks, UseCases, CodeExamples, and ApiEndpoints sections with MotionSection and MotionDiv using the new variants for enter and hover animations.
  • Animate header via MotionHeader with fade/slide-in transition and keep sticky layout and existing structure intact.
  • Wrap the landing page layout with a LandingMotionConfig component that configures MotionConfig with reducedMotion="user".
packages/dashboard/src/components/landing/motion.tsx
packages/dashboard/src/components/landing/motion-config.tsx
packages/dashboard/src/app/_hero.tsx
packages/dashboard/src/app/_api-endpoints.tsx
packages/dashboard/src/components/landing/use-cases.tsx
packages/dashboard/src/components/landing/how-it-works.tsx
packages/dashboard/src/app/_features.tsx
packages/dashboard/src/app/_code-examples.tsx
packages/dashboard/src/app/_header.tsx
packages/dashboard/src/app/page.tsx
Expose agents.md as a static dashboard asset and ensure buttons link to it via standard anchors. packages/dashboard/public/agents.md
packages/dashboard/src/app/_hero.tsx
packages/dashboard/src/app/_api-endpoints.tsx
Clean up internal hook/component naming by dropping leading underscores and updating re-exports and usage.
  • Rename various dashboard hooks (project data, tab state, stats, conversation actions, key actions, delete project, pagination, conversations data, etc.) from _useX to useX and update all imports/exports accordingly.
  • Rename RetentionSettings, InviteMemberForm, and MembersList components to drop the leading underscore and update their re-exports and call sites.
  • Adjust re-export barrels (e.g., project _components, conversations hooks, data-tab index) to match the new naming and ordering.
  • Apply small formatting/consistency tweaks (multi-line arrays/props, reordered imports) without changing behavior.
packages/dashboard/src/app/dashboard/project/page.tsx
packages/dashboard/src/app/dashboard/project/_components.tsx
packages/dashboard/src/app/dashboard/project/_data-tab-state.ts
packages/dashboard/src/app/dashboard/project/_retention-settings.tsx
packages/dashboard/src/app/dashboard/project/_data-tab.tsx
packages/dashboard/src/app/dashboard/conversations/_hooks.ts
packages/dashboard/src/app/dashboard/conversations/page.tsx
packages/dashboard/src/app/dashboard/conversations/_use-conversations-data.ts
packages/dashboard/src/app/dashboard/conversations/_use-conversations-pagination.ts
packages/dashboard/src/app/dashboard/domains/_verification-method.tsx
packages/dashboard/src/app/dashboard/domains/_verification-record.tsx
packages/dashboard/src/app/dashboard/project/_conversation-cell-renderers.tsx
packages/dashboard/src/app/dashboard/project/_project-settings.tsx
packages/dashboard/src/app/dashboard/settings/organizations/members/_components.tsx
packages/dashboard/src/app/dashboard/settings/organizations/members/_invite-member-form.tsx
packages/dashboard/src/app/dashboard/settings/organizations/members/_members-list.tsx
packages/dashboard/src/app/dashboard/project/_keys-tab-state.ts
packages/dashboard/src/app/dashboard/project/_use-computed-stats.ts
packages/dashboard/src/app/dashboard/project/_use-conversation-actions.ts
packages/dashboard/src/app/dashboard/project/_use-delete-project.ts
packages/dashboard/src/app/dashboard/project/_use-key-actions.ts
packages/dashboard/src/app/dashboard/project/_use-new-key-storage.ts
packages/dashboard/src/app/dashboard/project/_use-project-data.ts
packages/dashboard/src/app/dashboard/project/data-tab/conversations-content.tsx
packages/dashboard/src/app/dashboard/project/data-tab/index.ts
packages/dashboard/src/components/analytics/summary-cards.tsx
packages/dashboard/src/components/analytics/area-chart.tsx
packages/dashboard/src/app/dashboard/conversations/_hooks.ts
Add Motion dependency to the dashboard package and update lockfile.
  • Include motion@^12.38.0 in dashboard package.json dependencies so Motion components can be used.
  • Regenerate bun.lock to capture the new dependency graph.
packages/dashboard/package.json
bun.lock

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 17, 2026

Warning

Rate limit exceeded

@duyet has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 47 minutes and 9 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e567c234-1c59-4b82-878a-21db69ea913c

📥 Commits

Reviewing files that changed from the base of the PR and between 94c895f and b2e7ab6.

📒 Files selected for processing (4)
  • packages/dashboard/src/app/_api-endpoints.tsx
  • packages/dashboard/src/app/_hero.tsx
  • packages/dashboard/src/app/dashboard/project/page.tsx
  • packages/dashboard/src/components/landing/use-cases.tsx
📝 Walkthrough

Walkthrough

This PR introduces Framer Motion animations across the entire landing page while systematically removing underscore prefixes from exported hooks and components to establish a cleaner public API throughout the dashboard. The changes span motion infrastructure setup, animated landing sections, and API naming improvements across multiple feature modules.

Changes

Landing Page Animation Enhancement

Layer / File(s) Summary
Motion infrastructure setup
packages/dashboard/package.json, packages/dashboard/src/components/landing/motion.tsx, packages/dashboard/src/components/landing/motion-config.tsx
Motion dependency is added and motion utilities module exports MotionDiv, MotionHeader, MotionSection re-exports along with landing-specific animation variants (landingContainer, landingItem, landingCard, landingHover) for container stagger, fade-in, and hover effects. LandingMotionConfig wraps children with reduced motion support.
Header and hero animations
packages/dashboard/src/app/_header.tsx, packages/dashboard/src/app/_hero.tsx, packages/dashboard/public/agents.md
Header is wrapped with MotionHeader and animation props. Hero section badges, title, product signals, and operations overview are wrapped with MotionSection/MotionDiv using motion variants. The "agents.md" button switches from a Link component to a plain <a> anchor element.
Features and code examples sections
packages/dashboard/src/app/_features.tsx, packages/dashboard/src/app/_code-examples.tsx
Features list and code examples sections are animated using MotionSection/MotionDiv wrappers with landingContainer variants, landingItem for headers, and landingCard with whileHover for individual cards.
How-it-works and use-cases sections
packages/dashboard/src/components/landing/how-it-works.tsx, packages/dashboard/src/components/landing/use-cases.tsx
Step-by-step how-it-works and use-cases grid sections are animated with motion containers, item variants, card hover effects, and the key prop in use-cases is moved to the MotionDiv wrapper.
API endpoints section
packages/dashboard/src/app/_api-endpoints.tsx
API endpoints documentation section is animated with MotionSection/MotionDiv wrappers and motion variants matching other landing sections.
Landing page wrapper
packages/dashboard/src/app/page.tsx
Landing page is wrapped with LandingMotionConfig component to enable motion behavior across all sections.

Public API Cleanup and Naming

Layer / File(s) Summary
Conversations module API cleanup
packages/dashboard/src/app/dashboard/conversations/_hooks.ts, packages/dashboard/src/app/dashboard/conversations/_use-conversations-data.ts, packages/dashboard/src/app/dashboard/conversations/_use-conversations-pagination.ts, packages/dashboard/src/app/dashboard/conversations/page.tsx
Hooks are renamed from _useConversationsData, _useConversationsPagination to public useConversationsData, useConversationsPagination. Barrel exports and page imports are updated to match the new naming.
Domain verification components API cleanup
packages/dashboard/src/app/dashboard/domains/_verification-record.tsx, packages/dashboard/src/app/dashboard/domains/_verification-method.tsx
_VerificationRecord component is renamed to VerificationRecord and references in the verification method module are updated.
Project management hooks API cleanup
packages/dashboard/src/app/dashboard/project/_components.tsx, packages/dashboard/src/app/dashboard/project/_data-tab-state.ts, packages/dashboard/src/app/dashboard/project/_keys-tab-state.ts, packages/dashboard/src/app/dashboard/project/_use-computed-stats.ts, packages/dashboard/src/app/dashboard/project/_use-conversation-actions.ts, packages/dashboard/src/app/dashboard/project/_use-delete-project.ts, packages/dashboard/src/app/dashboard/project/_use-key-actions.ts, packages/dashboard/src/app/dashboard/project/_use-new-key-storage.ts, packages/dashboard/src/app/dashboard/project/_use-project-data.ts
Project hooks are renamed from underscore prefixes (_useDataTabState, _useComputedStats, _useConversationActions, _useDeleteProject, _useKeyActions, _useNewKeyStorage, _useProjectData) to public naming. Barrel exports are updated.
Project retention settings component API cleanup
packages/dashboard/src/app/dashboard/project/_retention-settings.tsx, packages/dashboard/src/app/dashboard/project/_project-settings.tsx
_RetentionSettings component is renamed to RetentionSettings. Retention validation if condition is reformatted for clarity. References in _project-settings.tsx are updated.
Project page hook and component wiring update
packages/dashboard/src/app/dashboard/project/page.tsx
ProjectContent page imports and hook calls are updated to use renamed public hooks. The onProjectUpdated callback is refactored to use explicit async/await for refreshProject() call.
Project data tab module imports and formatting
packages/dashboard/src/app/dashboard/project/data-tab/conversations-content.tsx, packages/dashboard/src/app/dashboard/project/data-tab/index.ts, packages/dashboard/src/app/dashboard/project/_data-tab.tsx, packages/dashboard/src/app/dashboard/project/_conversation-cell-renderers.tsx
Imports are reordered for consistent ordering, ColumnPicker invocation is simplified to single-line format, and total_cost cell renderer is reformatted across multiple lines.
Members form and list components API cleanup
packages/dashboard/src/app/dashboard/settings/organizations/members/_components.tsx, packages/dashboard/src/app/dashboard/settings/organizations/members/_invite-member-form.tsx, packages/dashboard/src/app/dashboard/settings/organizations/members/_members-list.tsx, packages/dashboard/src/app/dashboard/settings/organizations/members/page.tsx
_InviteMemberForm and _MembersList components are renamed to public naming. Corresponding props interfaces are also renamed and updated. Barrel exports and page imports/usage reflect the changes.
Analytics components formatting improvements
packages/dashboard/src/components/analytics/area-chart.tsx, packages/dashboard/src/components/analytics/summary-cards.tsx
Tooltip formatter logic is refactored to use inline conditional for optional formatValue handling. Total cost stat entry is expanded to multi-line format for improved readability.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • duyet/agentstate#37: Updates the landing "HowItWorks" component animation implementation, building on the motion infrastructure established here.
  • duyet/agentstate#70: Introduces the _RetentionSettings component whose underscore prefix is removed and refactored in this PR.
  • duyet/agentstate#66: Restructures project UI components within _components.tsx, which intersects with the hook re-export renaming in this PR.

Poem

🐰 Swirling through the landing page with grace,
Motion brings each section into place,
Underscores fade to public light,
Animations dance—what a delight!
Cleaner APIs bloom so bright!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 6.25% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding motion/animation components to the homepage of the dashboard, which is the primary focus across most modified files.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/agentstate-homepage-motion

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.

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • The new public/agents.md file currently just contains a relative path (../../api/src/content/agents.md), so the route will serve that literal text rather than the actual markdown content; consider either copying the built agents.md file into public at build time or using a real filesystem symlink so the static file is served correctly.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new `public/agents.md` file currently just contains a relative path (`../../api/src/content/agents.md`), so the route will serve that literal text rather than the actual markdown content; consider either copying the built `agents.md` file into `public` at build time or using a real filesystem symlink so the static file is served correctly.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces animations to the landing page using the motion library, including a new centralized motion configuration and the integration of animated components across the hero, features, and use-case sections. Additionally, it performs a significant refactor of the dashboard codebase by removing the underscore prefix from internal hooks and components to align with standard React naming conventions. A review comment suggests improving the consistency of the Button component usage in the ApiEndpoints section to ensure that link content is correctly rendered when using the render prop.

Comment on lines +84 to +94
<Button
variant="ghost"
size="sm"
nativeButton={false}
render={
<a href="/agents.md">
agents.md
<ArrowRightIcon data-icon="inline-end" />
</a>
}
/>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The Button component for agents.md is used inconsistently compared to the one for Full API reference (line 80). In line 80, the content is passed as children to the Button, while here it is nested inside the render prop. If the Button component uses a pattern like cloneElement to inject its own children into the render element, the content of the <a> tag might be lost or overwritten. It is better to pass the content as children to the Button for consistency and reliability.

Suggested change
<Button
variant="ghost"
size="sm"
nativeButton={false}
render={
<a href="/agents.md">
agents.md
<ArrowRightIcon data-icon="inline-end" />
</a>
}
/>
<Button
variant="ghost"
size="sm"
nativeButton={false}
render={<a href="/agents.md" />}
>
agents.md
<ArrowRightIcon data-icon="inline-end" />
</Button>

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Addressed in 22dbb20 by restoring the standard Base UI Button render pattern: the anchor stays in render and the visible content/icons are passed as Button children. I re-ran bunx biome check packages/dashboard/src/, cd packages/dashboard && bunx tsc --noEmit, cd packages/dashboard && bun run build, and a browser CTA check for /agents.md with no 4xx responses or console errors.

coderabbitai[bot]
coderabbitai Bot previously requested changes May 17, 2026
Copy link
Copy Markdown

@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

🤖 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 `@packages/dashboard/src/app/dashboard/project/page.tsx`:
- Around line 92-94: The current onProjectUpdated handler ignores the returned
updated project and calls refreshProject(), causing an unnecessary API call;
instead destructure setProject from useProjectData() in page.tsx, thread the
setProject function as a prop through _ProjectSettings to RetentionSettings, and
replace the handler with onProjectUpdated={(updated) => setProject(updated)} so
the component state uses the provided updated project rather than refetching via
refreshProject().

In `@packages/dashboard/src/components/landing/use-cases.tsx`:
- Around line 36-44: In the use-case card grid, remove the explicit
loading="eager" prop from the Image element that renders useCase.image (the
Image component with width={360} height={180} and className="size-full
object-contain") so the browser can perform native lazy-loading for non-LCP grid
images; simply delete the loading="eager" attribute (or replace it with
loading="lazy" if you prefer explicit behavior) in the Image used by
use-cases.tsx.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 195dbc92-2535-426b-bf8b-a81d7be503fc

📥 Commits

Reviewing files that changed from the base of the PR and between 9c7c2c2 and 94c895f.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (40)
  • packages/dashboard/package.json
  • packages/dashboard/public/agents.md
  • packages/dashboard/src/app/_api-endpoints.tsx
  • packages/dashboard/src/app/_code-examples.tsx
  • packages/dashboard/src/app/_features.tsx
  • packages/dashboard/src/app/_header.tsx
  • packages/dashboard/src/app/_hero.tsx
  • packages/dashboard/src/app/dashboard/conversations/_hooks.ts
  • packages/dashboard/src/app/dashboard/conversations/_use-conversations-data.ts
  • packages/dashboard/src/app/dashboard/conversations/_use-conversations-pagination.ts
  • packages/dashboard/src/app/dashboard/conversations/page.tsx
  • packages/dashboard/src/app/dashboard/domains/_verification-method.tsx
  • packages/dashboard/src/app/dashboard/domains/_verification-record.tsx
  • packages/dashboard/src/app/dashboard/project/_components.tsx
  • packages/dashboard/src/app/dashboard/project/_conversation-cell-renderers.tsx
  • packages/dashboard/src/app/dashboard/project/_data-tab-state.ts
  • packages/dashboard/src/app/dashboard/project/_data-tab.tsx
  • packages/dashboard/src/app/dashboard/project/_keys-tab-state.ts
  • packages/dashboard/src/app/dashboard/project/_project-settings.tsx
  • packages/dashboard/src/app/dashboard/project/_retention-settings.tsx
  • packages/dashboard/src/app/dashboard/project/_use-computed-stats.ts
  • packages/dashboard/src/app/dashboard/project/_use-conversation-actions.ts
  • packages/dashboard/src/app/dashboard/project/_use-delete-project.ts
  • packages/dashboard/src/app/dashboard/project/_use-key-actions.ts
  • packages/dashboard/src/app/dashboard/project/_use-new-key-storage.ts
  • packages/dashboard/src/app/dashboard/project/_use-project-data.ts
  • packages/dashboard/src/app/dashboard/project/data-tab/conversations-content.tsx
  • packages/dashboard/src/app/dashboard/project/data-tab/index.ts
  • packages/dashboard/src/app/dashboard/project/page.tsx
  • packages/dashboard/src/app/dashboard/settings/organizations/members/_components.tsx
  • packages/dashboard/src/app/dashboard/settings/organizations/members/_invite-member-form.tsx
  • packages/dashboard/src/app/dashboard/settings/organizations/members/_members-list.tsx
  • packages/dashboard/src/app/dashboard/settings/organizations/members/page.tsx
  • packages/dashboard/src/app/page.tsx
  • packages/dashboard/src/components/analytics/area-chart.tsx
  • packages/dashboard/src/components/analytics/summary-cards.tsx
  • packages/dashboard/src/components/landing/how-it-works.tsx
  • packages/dashboard/src/components/landing/motion-config.tsx
  • packages/dashboard/src/components/landing/motion.tsx
  • packages/dashboard/src/components/landing/use-cases.tsx

Comment thread packages/dashboard/src/app/dashboard/project/page.tsx Outdated
Comment thread packages/dashboard/src/components/landing/use-cases.tsx
Use the established Base UI Button render pattern for agents.md anchors while preserving static markdown navigation.

Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
@duyet
Copy link
Copy Markdown
Owner Author

duyet commented May 17, 2026

Sourcery note on packages/dashboard/public/agents.md: this file is a real git symlink (git ls-files -s reports mode 120000) to ../../api/src/content/agents.md, not a plain text copy. I also verified the built dashboard output materializes the full markdown at packages/dashboard/out/agents.md, and the local static server returns 200 text/markdown for /agents.md. No code change was needed for that point.

Use the updated project response after retention saves instead of refetching.

Let non-critical use-case images lazy-load by default.

Co-Authored-By: Duyet Le <me@duyet.net>

Co-Authored-By: duyetbot <bot@duyet.net>
@duyet duyet dismissed coderabbitai[bot]’s stale review May 17, 2026 10:12

Addressed by b2e7ab6; CodeRabbit follow-up reviews marked both comments addressed.

@duyet duyet merged commit 57baa86 into main May 17, 2026
4 checks passed
@duyet duyet deleted the codex/agentstate-homepage-motion branch May 17, 2026 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant