This document details all changes made during the fork and rebrand from Dyad to CodeDuet.
New Template Added:
- Next.js + Stripe v2 Template: Enhanced template with modern payment flows and subscription management
- ID:
nextjs-stripe-v2 - Repository:
https://github.com/CodeDuet/nextjs-stripe-template-v2 - Features: Modern payment flows, subscription management, comprehensive webhook handling, TypeScript, Tailwind CSS
- File:
src/shared/templates.ts:65-72
- ID:
Template Updates:
- Fixed Next.js + Stripe Template Image: Updated broken image URL and GitHub repository URL
- File:
src/shared/templates.ts:46-53 - Image URL: Updated to
https://github.com/CodeDuet/nextjs-stripe-template/blob/main/public/demo.png - Repository: Updated to use correct CodeDuet organization URL
- File:
Bug Fix:
- Fixed Next.js + Stripe Template Image: Corrected broken image URL in template display
- File:
src/shared/templates.ts:50 - Issue: Invalid GitHub assets URL causing broken image in template hub
- Solution: Updated to proper GitHub assets URL format
- File:
New Features:
- Next.js + Stripe Template: Pre-configured template with Stripe payments ready for Vercel deployment
- Integration Shortcuts: Visual button and slash commands for easy integration setup
- Automatic Environment Setup: Auto-installs packages and configures environment variables
- Smart Integration UI: Dedicated setup flow with API key validation and package installation
How to Use:
- Templates: Select "Next.js + Stripe Template" from the Hub for new projects
- Integration Button: Click ⚡ "Integrations" in chat → Select "Stripe" for existing projects
- Slash Commands: Type
/stripeor/supabaseand press Enter - Manual Tags: Still supports
<codeduet-add-integration provider="stripe">format
Technical Implementation:
- Created
StripeIntegration.tsxcomponent with API key collection and validation - Added
IntegrationShortcuts.tsxpopover with visual integration options - Implemented slash command handler in
ChatInput.tsxfor/stripeand/supabase - Updated app-details page to show integration setup when
?integration=stripeparameter is present
Breaking Change - Tag Prefix Migration:
- Old Format:
<dyad-*>tags (e.g.,<dyad-add-integration>) - New Format:
<codeduet-*>tags (e.g.,<codeduet-add-integration>)
Updated Components:
- Renamed all chat components from
Dyad*toCodeDuet*(e.g.,DyadAddIntegration→CodeDuetAddIntegration) - Updated
CodeDuetMarkdownParser.tsxto recognize newcodeduet-*tag format - Migrated all integration tags:
codeduet-write,codeduet-edit,codeduet-delete,codeduet-add-integration, etc. - Updated tag parsing logic in
preprocessUnclosedTags()function
Backward Compatibility: Old dyad-* tags will no longer work and should be updated to codeduet-* format.
User-Visible System Messages:
- Proxy Server Messages: Updated from
[dyad-proxy-server]started=to[codeduet-proxy-server]started=- Files Updated:
src/ipc/handlers/app_handlers.ts,src/hooks/useRunApp.ts - Impact: System Messages panel now shows CodeDuet branding instead of Dyad
- Files Updated:
Internal Logging Updates:
- Engine Creation: Log messages changed from "creating dyad engine" to "creating codeduet engine"
- File:
src/ipc/utils/llm_engine_provider.ts:74
- File:
- Logger Scopes: Updated scope names from
"dyad_tag_parser"to"codeduet_tag_parser"- File:
src/ipc/utils/dyad_tag_parser.ts:5
- File:
Preserved for Compatibility:
- Legacy dyad tag parsing functions maintained for backward compatibility with AI model responses
- Internal processing still recognizes old dyad tags to handle existing chat responses
- package.json
- Updated
namefrom "dyad" to "codeduet" - Updated
productNamefrom "Dyad" to "CodeDuet" - Updated repository URL to
https://github.com/codeduet/codeduet-ai-agent.git - Updated homepage to
https://codeduet.com - Changed environment variable from
DYAD_ENGINE_URLtoCODEDUET_ENGINE_URL
- Updated
- src/paths/paths.ts
- Renamed function
getDyadAppPathtogetCodeDuetAppPath - Updated directory paths from "dyad-apps" to "codeduet-apps"
- Renamed function
- src/components/modals/DeleteDyadAppModal.tsx → DeleteCodeDuetAppModal.tsx
- Updated component name and all internal references
- Updated modal title and descriptions
- src/lib/schemas.ts
- Renamed function
isDyadProEnabledtoisCodeDuetProEnabled - Updated all schema references and type definitions
- Renamed function
- src/main/settings.ts
- Updated default settings structure
- Removed telemetry-related default values
- packages/@codeduet-sh/ directories created/renamed:
react-vite-component-tagger/- Vite plugin for React component taggingnextjs-webpack-component-tagger/- Next.js webpack loader for component tagging
-
Removed files:
src/components/TelemetryBanner.tsxsrc/components/TelemetrySwitch.tsx
-
package.json
- Removed
posthog-jsdependency
- Removed
-
src/renderer.tsx
- Removed PostHog imports and initialization
- Removed PostHogProvider wrapper
- Removed navigation tracking
-
src/hooks/useSettings.ts
- Removed PostHog imports and usage
- Removed telemetry processing functions
- Removed localStorage telemetry management
- Removed
isTelemetryOptedIn()andgetTelemetryUserId()functions
-
src/lib/schemas.ts
- Removed
telemetryConsentandtelemetryUserIdfields from settings schema
- Removed
-
src/main/settings.ts
- Removed telemetry default values
- Removed uuid import for telemetry user ID generation
- Updated title and description to CodeDuet
- Updated website URLs to https://codeduet.com
- Added attribution section crediting original Dyad project:
> **Attribution**: CodeDuet is forked from [Dyad](https://github.com/dyad-sh/dyad), an open-source project by [Will Chen](https://github.com/willchen90). We're grateful for the excellent foundation provided by the original Dyad project and its contributors. All original work remains under the Apache 2.0 license.
- Comprehensive documentation of Dyad npm packages requiring forking
- Detailed information on:
@dyad-sh/supabase-management-js- Supabase management utilities@dyad-sh/react-vite-component-tagger- Vite plugin for React component data attributes@dyad-sh/nextjs-webpack-component-tagger- Next.js webpack loader for component tagging
- Migration strategy and action items for decoupling
- Extensive roadmap for transforming CodeDuet into agentic AI development platform
- Key sections:
- Core Sandboxing Infrastructure - MicroVM isolation, snapshot/restore, multi-environment support
- Agentic Workflow Capabilities - Autonomous testing, deployment, code quality agents
- Custom AI Infrastructure - RunPod.io GPU container integration, self-hosted model support
- Advanced Development Features - Multi-agent collaboration, live environment interaction
- Security and Compliance - Network isolation, resource limits, audit logging
- Implementation Roadmap - 4-phase timeline over 12+ months
- Custom GPU inference with Docker containers and acceleration
- Model management and deployment capabilities
- Hybrid inference architecture for cost optimization
- Automatic container scaling and spot instance support
- Secure MicroVM execution environments
- Snapshot and restore system for backtracking
- Multi-environment support for different language stacks
- Integration points with existing Arrakis project
- Updated environment variable naming convention from
DYAD_*toCODEDUET_* - Maintained backward compatibility during transition
- Updated Electron build configuration for new product name
- Updated application metadata and descriptions
- Function name changes in
src/paths/paths.tswill require updates in any external integrations - Component name changes may affect any custom styling or testing that references specific component names
- Directory path changes from "dyad-apps" to "codeduet-apps" will affect existing user data locations
- Users may need to migrate existing projects to new directory structure
- Still depends on original
@dyad-sh/npm packages until forks are published - Future updates will require publishing forked packages under new organization
- Core application files
- Component definitions
- Configuration files
- Build scripts
- Documentation
- DEPENDENCIES.md
- FEATURE_REQUEST.md
- CHANGES.md (this file)
- TelemetryBanner.tsx
- TelemetrySwitch.tsx
- posthog-js (analytics)
-
✅ Publish Forked Packages:
Create and publish npm packages under- COMPLETED@codeduet/organization- Published
@codeduet-sh/supabase-management-jsv1.0.1 - Local packages structure established under
packages/@codeduet-sh/ - Package management integrated into build system (
npm run build:packages)
- Published
-
✅ Update Dependencies:
Replace- COMPLETED@dyad-sh/packages with forked versions- Updated main package.json to use
@codeduet-sh/supabase-management-jsv1.0.0 - Workspace configuration updated to include
packages/@codeduet-sh/* - Build pipeline configured for local package compilation
- Updated main package.json to use
-
User Data Migration: Implement migration for existing "dyad-apps" directories
-
Feature Implementation: Begin Phase 1 of FEATURE_REQUEST.md roadmap
This changelog documents the complete transformation from Dyad to CodeDuet, including rebranding, telemetry removal, and future feature planning.