Skip to content

Commit f34a1b4

Browse files
committed
User changes: cleanup inspector, update docs, remove old icons, refactor versions store
- Removed old Inspector.tsx (replaced by InspectorPanel.tsx) - Added inspector-types.ts for shared type definitions - Updated multiple component imports (BaseChat, Chat, ChatBox, AIQuickActions, etc.) - Refactored versions.ts store - Updated README and docs (API-ROUTES, ARCHITECTURE, COMPONENTS, etc.) - Removed unused icon assets (d.ico, icon.icns, icon.ico, icon.png) - Updated .gitignore - Added exports to previews.ts and staging.ts stores - Updated useMessageParser hook
1 parent d8888ad commit f34a1b4

27 files changed

Lines changed: 219 additions & 330 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ _worker.bundle
3535

3636
Modelfile
3737
modelfiles
38+
build-output.log
3839

3940
# docs ignore
4041
site

README.md

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -37,41 +37,22 @@ pnpm run dev
3737
# Open http://localhost:5173
3838
```
3939

40-
> [!note]
4140
> First load can take up to 2 minutes while dependencies compile.
42-
>
43-
> <a href="docs/">Full Project Documentation</a>
4441
4542
---
4643

4744
## Why Devonz?
4845

49-
- **22 AI providers** ➺ OpenAI, Anthropic, Google, Groq, Z.ai, Ollama, and more. Swap models mid-conversation.
50-
- **Full dev environment in the browser** ➺ editor, terminal, live preview, all powered by WebContainers.
51-
- **One-click deploy** ➺ push to GitHub, GitLab, Netlify, or Vercel directly from the UI.
52-
- **MCP tools** ➺ extend the agent with Model Context Protocol servers for specialized workflows.
53-
- **Auto-fix** ➺ terminal error detection catches failures and patches them automatically.
54-
- **Image context** ➺ attach screenshots or design files to prompts for visual understanding.
55-
- **Design Palette** ➺ pick custom color themes that get injected into AI-generated apps.
56-
- **3D support** ➺ generate React Three Fiber apps with automatic version pinning and peer dependency resolution.
57-
- **Template gallery** ➺ start from popular frameworks and boilerplates, then customize with AI.
58-
- **State-of-the-art AI SDK** ➺ built on the Vercel AI SDK for best-in-class LLM performance and reliability.
59-
60-
> [!important]
61-
>
62-
> Agent Mode VS Standard Mode
63-
>
64-
> **Agent Mode** is built for tasks that require context before action — complex multi-step workflows
65-
> (research → plan → execute), operations where each step depends on prior results, or any task where
66-
> you'd want to inspect files before modifying them. It's especially powerful when paired with
67-
> `devonz_search_in_files` to verify patterns before committing changes. Expect higher token usage
68-
> in exchange for more deliberate, accurate execution.
69-
>
70-
> **Standard Mode** is the right call when you can describe the full output upfront. Single-shot
71-
> website generation, simple file creation tasks, and straightforward prompts all benefit from
72-
> Standard Mode's lower latency and reduced token overhead.
73-
>
74-
> If the task requires *knowing something before doing something* — Agent Mode. Everything else — Standard Mode.
46+
- **22 AI providers** — OpenAI, Anthropic, Google, Groq, Z.ai, Ollama, and more. Swap models mid-conversation.
47+
- **Full dev environment in the browser** — editor, terminal, live preview, all powered by WebContainers.
48+
- **One-click deploy** — push to GitHub, GitLab, Netlify, or Vercel directly from the UI.
49+
- **MCP tools** — extend the agent with Model Context Protocol servers for specialized workflows.
50+
- **Auto-fix** — terminal error detection catches failures and patches them automatically.
51+
- **Image context** — attach screenshots or design files to prompts for visual understanding.
52+
- **Design Palette** — pick custom color themes that get injected into AI-generated apps.
53+
- **3D support** — generate React Three Fiber apps with automatic version pinning and peer dependency resolution.
54+
- **Template gallery** — start from popular frameworks and boilerplates, then customize with AI.
55+
- **State-of-the-art AI SDK** — built on the Vercel AI SDK for best-in-class LLM performance and reliability.
7556

7657
---
7758

@@ -81,13 +62,14 @@ pnpm run dev
8162
- Natural language to full-stack apps (Node.js-based)
8263
- 22 LLM providers with hot-swappable model selection
8364
- MCP (Model Context Protocol) tool integration
84-
- MCP Schema Sanitization ➺ Automatic schema compatibility for Google Gemini (strips unsupported constructs)
8565
- Automatic error detection and auto-fix from terminal output
8666
- Attach images to prompts for visual context
87-
- **Extended Thinking** ➺ AI reasoning visualization for Anthropic Claude and Google Gemini
88-
- **Formatted Tool Results** ➺ MCP tool results render as formatted markdown instead of raw JSON
89-
- **Design Palette** ➺ UI for picking custom color themes injected into generated code
90-
- **3D App Generation** ➺ React Three Fiber support with automatic version pinning for React 18/19
67+
- **Extended Thinking** — AI reasoning visualization for Anthropic Claude and Google Gemini
68+
- **MCP Schema Sanitization** — Automatic schema compatibility for Google Gemini (strips unsupported constructs)
69+
- **MCP Auto-Approve** — Per-server auto-approve toggle for trusted MCP servers
70+
- **Formatted Tool Results** — MCP tool results render as formatted markdown instead of raw JSON
71+
- **Design Palette** — UI for picking custom color themes injected into generated code
72+
- **3D App Generation** — React Three Fiber support with automatic version pinning for React 18/19
9173

9274
**Development Environment**
9375
- In-browser code editor (CodeMirror) with syntax highlighting
@@ -97,7 +79,7 @@ pnpm run dev
9779
- File locking to prevent conflicts during generation
9880

9981
**Security & Reliability**
100-
- **Security Hardened** `withSecurity()` on all 35+ API routes with input validation, rate limiting options, URL allowlisting
82+
- **Security Hardened** `withSecurity()` on all 35+ API routes with input validation, rate limiting options, URL allowlisting
10183

10284
**Deployment & Integrations**
10385
- GitHub / GitLab push and repo management
@@ -252,7 +234,7 @@ docker compose --profile auto-update up -d
252234
<summary>Expand file tree</summary>
253235

254236
```
255-
devonz.diy/
237+
bolt.diy/
256238
├── app/
257239
│ ├── components/ # React components
258240
│ │ ├── @settings/ # Settings panel (14 tabs)
@@ -302,9 +284,9 @@ See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for detailed guidelines.
302284

303285
## Acknowledgments
304286

305-
- [devonz.diy](https://github.com/stackblitz-labs/devonz.diy) original project foundation
306-
- [StackBlitz WebContainers](https://webcontainers.io/) in-browser dev environment
307-
- [Vercel AI SDK](https://sdk.vercel.ai/) AI capabilities
287+
- [bolt.diy](https://github.com/stackblitz-labs/bolt.diy) original project foundation
288+
- [StackBlitz WebContainers](https://webcontainers.io/) in-browser dev environment
289+
- [Vercel AI SDK](https://sdk.vercel.ai/) AI capabilities
308290

309291
---
310292

@@ -314,4 +296,4 @@ See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for detailed guidelines.
314296
<a href="https://github.com/zebbern/Devonz">GitHub</a> ·
315297
<a href="https://github.com/zebbern/Devonz/issues">Issues</a> ·
316298
<a href="docs/">Documentation</a>
317-
</div>
299+
</div>

app/components/chat/BaseChat.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { useStore } from '@nanostores/react';
2929
import { StickToBottom, useStickToBottomContext } from '~/lib/hooks';
3030
import { ChatBox } from './ChatBox';
3131
import type { DesignScheme } from '~/types/design-scheme';
32-
import type { ElementInfo } from '~/components/workbench/Inspector';
32+
import type { ElementInfo } from '~/components/workbench/inspector-types';
3333
import LlmErrorAlert from './LLMApiAlert';
3434
import { ResizeHandle } from '~/components/ui/ResizeHandle';
3535
import { createScopedLogger } from '~/utils/logger';

app/components/chat/Chat.client.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import { streamingState } from '~/lib/stores/streaming';
2626
import { filesToArtifacts } from '~/utils/fileUtils';
2727
import { supabaseConnection } from '~/lib/stores/supabase';
2828
import { defaultDesignScheme, type DesignScheme } from '~/types/design-scheme';
29-
import type { ElementInfo } from '~/components/workbench/Inspector';
29+
import type { ElementInfo } from '~/components/workbench/inspector-types';
3030
import type { TextUIPart, FileUIPart, Attachment } from '@ai-sdk/ui-utils';
3131
import { mcpStore } from '~/lib/stores/mcp';
3232
import type { LlmErrorAlertType } from '~/types/actions';

app/components/chat/ChatBox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type { ProviderInfo } from '~/types/model';
1616
import type { ModelInfo } from '~/lib/modules/llm/types';
1717
import { ColorSchemeDialog } from '~/components/ui/ColorSchemeDialog';
1818
import type { DesignScheme } from '~/types/design-scheme';
19-
import type { ElementInfo } from '~/components/workbench/Inspector';
19+
import type { ElementInfo } from '~/components/workbench/inspector-types';
2020
import { McpTools } from './MCPTools';
2121
import { WebSearch } from './WebSearch.client';
2222
import { ChatModeSelector } from './ChatModeSelector';

app/components/workbench/AIQuickActions.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useCallback } from 'react';
2-
import type { ElementInfo } from './Inspector';
2+
import type { ElementInfo } from './inspector-types';
33

44
interface AiQuickActionsProps {
55
selectedElement: ElementInfo | null;

app/components/workbench/Inspector.tsx

Lines changed: 0 additions & 149 deletions
This file was deleted.

app/components/workbench/InspectorPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useState, useCallback, memo } from 'react';
2-
import type { ElementInfo } from './Inspector';
2+
import type { ElementInfo } from './inspector-types';
33
import { BoxModelEditor } from './BoxModelEditor';
44
import { AiQuickActions } from './AIQuickActions';
55
import { ElementTreeNavigator } from './ElementTreeNavigator';

app/components/workbench/Preview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { PortDropdown } from './PortDropdown';
88
import { expoUrlAtom } from '~/lib/stores/qrCodeStore';
99
import { ExpoQrModal } from '~/components/workbench/ExpoQrModal';
1010
import { InspectorPanel } from './InspectorPanel';
11-
import type { ElementInfo } from './Inspector';
11+
import type { ElementInfo } from './inspector-types';
1212
import { getPreviewErrorHandler } from '~/utils/previewErrorHandler';
1313
import { createScopedLogger } from '~/utils/logger';
1414

app/components/workbench/Versions.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { memo, useState } from 'react';
1+
import { memo, useEffect, useState } from 'react';
22
import { useStore } from '@nanostores/react';
33
import { motion, AnimatePresence } from 'framer-motion';
44
import { toast } from 'react-toastify';
@@ -120,6 +120,11 @@ export const Versions = memo(() => {
120120

121121
const [searchQuery, setSearchQuery] = useState('');
122122

123+
// Backfill missing thumbnails when the panel is opened
124+
useEffect(() => {
125+
versionsStore.backfillMissingThumbnails();
126+
}, []);
127+
123128
const allVersions = versionsStore.getAllVersions();
124129

125130
const filteredVersions = allVersions.filter(

0 commit comments

Comments
 (0)