- Remove commented-out playback logic from share page
- Simplify tool call handling in PlaybackControls by removing toolPlaybackIndex state
- Fix tool navigation initialization and synchronization issues
- Consolidate HIDE_STREAMING_XML_TAGS constant from multiple files into utils.ts
- Add 'create-tasks' to hidden streaming XML tags list
- Improve tool call side panel index synchronization
- Add cursor pointer styling to slider components for better UX
- Remove unused toolName tracking in chunk processing
- Fix tool index initialization to start at 0 instead of -1
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Removed maintenance notice fetching from the DashboardLayout component.
- Introduced a new API route for fetching maintenance notice data.
- Updated DashboardLayoutContent to use a custom hook for maintenance notice queries.
- Adjusted data types for maintenance notice timestamps to strings for consistency.
- Added prefetching options in sidebar components for improved performance.
- Removed references to QStash in documentation and codebase.
- Updated setup and configuration files to reflect the transition to Supabase Cron.
- Implemented new functions for scheduling and unscheduling jobs using Supabase Cron.
- Added webhook authentication using a shared secret for enhanced security.
- Cleaned up related dependencies and example configurations.
- Added PostHog client initialization in instrumentation-client.ts.
- Configured Next.js rewrites for PostHog ingestion endpoints in next.config.ts.
- Implemented user identification and event tracking in various components, including pricing-section.tsx, sidebar-left.tsx, chat-input.tsx, and api.ts.
- Introduced PostHogIdentify component to handle user session changes.
- Updated package.json and package-lock.json to include PostHog dependencies.
- Removed hardcoded maximum parallel agent runs and replaced with a configurable property in the Configuration class.
- Updated API and agent limit checks to utilize the new configuration property.
- Simplified error handling by removing limit from error details in the frontend components.
- Adjusted UI components to reflect changes in agent limit data structure.
- Added functionality to check the maximum parallel agent runs allowed within a 24-hour period.
- Introduced `AgentRunLimitError` to handle cases where the limit is exceeded.
- Updated API to return appropriate error responses for agent run limits.
- Created `AgentRunLimitDialog` component to inform users when the limit is reached, displaying currently running agents and options to stop them.
- Integrated limit checks into agent initiation and running processes across relevant components.
- Introduced memoization for ToolCallSidePanel and FileViewerModal to enhance rendering efficiency.
- Cleaned up unused useEffect hooks in ThreadPage to improve readability and maintainability.
- Refactored playback timeout management in PlaybackControls to utilize useRef for better performance.
- Enhanced streaming content handling in ThreadContent with a helper function for improved clarity and functionality.
- Modify the default tab selection logic to display 'preview' for Markdown or HTML files, and 'code' for others.
- This change enhances the user experience by ensuring the appropriate tab is shown based on file type.
- Introduced ForwardButton for advancing playback by one message.
- Added ResetButton to restart playback from the beginning.
- Refactored Play and Reset button implementations into separate components for better readability and maintainability.
- Updated the playback state management to handle new button functionalities.
These changes improve user interaction with playback controls, allowing for more intuitive navigation through messages.
- Eliminate the currentTags and publishTags state management from AgentsPage.
- Update openPublishDialog and handleAgentPublish functions to no longer set tags.
- Modify PublishDialog to remove tag input and add an alert for sensitive information warnings.
- Ensure the publishing process remains intact without the tags functionality.
This streamlines the publishing process and enhances user awareness regarding sensitive data.
- Add backend API endpoints for agent export/import
- GET /agents/{agent_id}/export - exports agent configuration as JSON
- POST /agents/import - imports agent from JSON (new agents only)
- Add AgentExportData and AgentImportRequest Pydantic models
- Integrate export functionality in agent config header
- Add always-visible 3-dots menu left of "Prompt to Build" tab
- Include export option in dropdown menu for all agent types
- Handle loading states during export process
- Add subtle import functionality to new agent dialog
- Replace mode selection with "or import from JSON" link
- Support file upload and validation for agent JSON
- Streamline UX for creating agents from templates
- Create React Query hooks for export/import operations
- useExportAgent: handles JSON download with proper error handling
- useImportAgent: creates new agent and invalidates cache
- Remove update existing agent option (import creates new agents only)
- Fix API integration to use direct fetch calls with backend URL
- Clean up unused components and improve code organization
This enables users to share agent configurations across instances
and create agents from templates with an intuitive interface.
- Updated the UsageLogEntry interface to include new fields: message_id, thread_id, created_at, content, total_tokens, estimated_cost, and project_id.
- Modified the truncateString function to handle optional string input, returning an empty string if no input is provided.
- Introduced separate mappings for production and staging environments.
- Updated the configuration to dynamically select the appropriate yearly commitment plans based on the current environment mode.
- Added support for yearly commitment plans with associated pricing tiers in the billing service.
- Introduced validation functions to manage plan changes and restrictions based on business rules.
- Updated configuration to include new yearly commitment pricing in both production and staging environments.
- Enhanced frontend components to handle subscription management, including cancellation and reactivation features.
- Refactored billing-related hooks and API calls to accommodate new subscription types and improve error handling.
- Added margin classes to labels for better spacing and alignment.
- Updated card header styling for a cleaner look.
- Enhanced text visibility by adding margin to description labels.
- Simplified the API key creation success message for clarity.
- Adjusted button labels for improved user experience.
- Added a new API keys service with endpoints for creating, listing, revoking, and deleting API keys.
- Integrated API key validation and caching for performance.
- Updated backend configuration to include API key secret and throttling settings.
- Created frontend components for managing API keys, including a user interface for creating and displaying keys.
- Introduced a new database migration for the API keys table with necessary constraints and security policies.
- Enhanced authentication methods to support API key usage alongside JWT.
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx:41:11
Type error: Object literal may only specify known properties, and 'color' does not exist in type 'ReactDiffViewerStylesVariables'.
39 | variables: {
40 | dark: {
> 41 | color: '#e2e8f0',
| ^
42 | background: '#09090b',
43 | addedBackground: '#104a32',
44 | addedColor: '#6ee7b7',
Next.js build worker exited with code: 1 and signal: null
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx:41:11
Type error: Object literal may only specify known properties, and 'color' does not exist in type 'ReactDiffViewerStylesVariables'.
39 | variables: {
40 | dark: {
> 41 | color: '#e2e8f0',
| ^
42 | background: '#09090b',
43 | addedBackground: '#104a32',
44 | addedColor: '#6ee7b7',
Next.js build worker exited with code: 1 and signal: null
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'generateLineDiff' is not exported from './_utils' (imported as 'generateLineDiff').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'calculateDiffStats' is not exported from './_utils' (imported as 'calculateDiffStats').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
⚠ Compiled with warnings in 40.0s
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'generateLineDiff' is not exported from './_utils' (imported as 'generateLineDiff').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
Attempted import error: 'calculateDiffStats' is not exported from './_utils' (imported as 'calculateDiffStats').
Import trace for requested module:
./src/components/thread/tool-views/file-operation/FileEditToolView.tsx
./src/components/thread/tool-views/wrapper/ToolViewRegistry.tsx
./src/components/thread/tool-views/wrapper/index.ts
./src/components/thread/tool-call-side-panel.tsx
./src/app/share/[threadId]/page.tsx
like stream the code-edit output of the agent; Then we should be able to show the diff as well, when the tool complete. We get the original file content, and the full updated code (output of morph) and some how send it to the front end.
the front end should show this properly , concisely so user can see the changes in green / red.
This shouldn't change the content feed to the model btw. Like it will pollute the context.
make a plan what to do first, not make changes yet