diff --git a/.superpowers/brainstorm/33312-1773817943/.server-info b/.superpowers/brainstorm/33312-1773817943/.server-info deleted file mode 100644 index 2c7dfdbc..00000000 --- a/.superpowers/brainstorm/33312-1773817943/.server-info +++ /dev/null @@ -1 +0,0 @@ -{"type":"server-started","port":60485,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:60485","screen_dir":"/Users/majunxian/Desktop/PyProject/inkos-studio/.superpowers/brainstorm/33312-1773817943"} diff --git a/.superpowers/brainstorm/33312-1773817943/.server-stopped b/.superpowers/brainstorm/33312-1773817943/.server-stopped new file mode 100644 index 00000000..cfba4ed1 --- /dev/null +++ b/.superpowers/brainstorm/33312-1773817943/.server-stopped @@ -0,0 +1 @@ +{"reason":"owner process exited","timestamp":1773820583908} diff --git a/.superpowers/brainstorm/33312-1773817943/.server.log b/.superpowers/brainstorm/33312-1773817943/.server.log index 322ecda4..7b889eb2 100644 --- a/.superpowers/brainstorm/33312-1773817943/.server.log +++ b/.superpowers/brainstorm/33312-1773817943/.server.log @@ -1,3 +1,4 @@ {"type":"server-started","port":60485,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:60485","screen_dir":"/Users/majunxian/Desktop/PyProject/inkos-studio/.superpowers/brainstorm/33312-1773817943"} {"type":"screen-added","file":"/Users/majunxian/Desktop/PyProject/inkos-studio/.superpowers/brainstorm/33312-1773817943/layout-concept.html"} {"type":"screen-added","file":"/Users/majunxian/Desktop/PyProject/inkos-studio/.superpowers/brainstorm/33312-1773817943/layout-refined.html"} +{"type":"server-stopped","reason":"owner process exited"} diff --git a/packages/studio/src/App.tsx b/packages/studio/src/App.tsx index ae884cb8..f9f372de 100644 --- a/packages/studio/src/App.tsx +++ b/packages/studio/src/App.tsx @@ -41,12 +41,9 @@ export function App() { document.documentElement.classList.toggle("dark", isDark); }, [isDark]); - // Check if language has been set useEffect(() => { if (project) { - setLanguageSet(!!project.language && project.language !== "zh" ? true : true); - // For now, always consider language "set" — the selector is for first-time experience - // In a real implementation, we'd check a "hasCompletedSetup" flag + setLanguageSet(true); } }, [project]); @@ -63,42 +60,38 @@ export function App() { toLogs: () => setRoute({ page: "logs" }), }; - // Derive active page for sidebar highlighting const activePage = route.page === "book" || route.page === "chapter" || route.page === "truth" || route.page === "analytics" ? `book:${(route as { bookId: string }).bookId}` : route.page; - // Language selector for first-time setup if (languageSet === null) { - return
; // Loading + return
; } return (
- {/* Sidebar */} - {/* Main area + Chat bar */}
- {/* Header strip */} -
+ {/* Thin utility strip — pushed inward */} +
{sse.connected && ( - + {t("nav.connected")} )}
- {/* Scrollable main content */} + {/* Scrollable main — centered with generous inset */}
-
+
{route.page === "dashboard" && } {route.page === "book" && } {route.page === "book-create" && } @@ -111,7 +104,7 @@ export function App() {
- {/* Chat bar - always at bottom */} + {/* Chat bar — inset to match content width */}
diff --git a/packages/studio/src/components/ChatBar.tsx b/packages/studio/src/components/ChatBar.tsx index 01acba81..40c3928e 100644 --- a/packages/studio/src/components/ChatBar.tsx +++ b/packages/studio/src/components/ChatBar.tsx @@ -118,38 +118,40 @@ export function ChatBar({ t, sse }: { : "Tell InkOS what to do..."; return ( -
+
{/* Expanded message area */} {expanded && messages.length > 0 && ( -
- {messages.map((msg, i) => ( -
- {msg.role === "user" && } - {msg.content} -
- ))} - {loading && !messages.some((m) => m.content.startsWith("⋯")) && ( -
- )} +
+
+ {messages.map((msg, i) => ( +
+ {msg.role === "user" && } + {msg.content} +
+ ))} + {loading && !messages.some((m) => m.content.startsWith("⋯")) && ( +
+ )} +
)} - {/* Input bar */} -
+ {/* Input bar — centered to match main content */} +
e.key === "Enter" && handleSubmit()} placeholder={chatPlaceholder} disabled={loading} - className="w-full bg-transparent text-[13px] text-foreground placeholder:text-muted-foreground/30 focus:outline-none disabled:opacity-50" + className="w-full bg-transparent text-[13px] text-foreground placeholder:text-muted-foreground/25 focus:outline-none disabled:opacity-50" />
-
+
{expanded && messages.length > 0 && ( @@ -175,7 +177,7 @@ export function ChatBar({ t, sse }: { diff --git a/packages/studio/src/components/Sidebar.tsx b/packages/studio/src/components/Sidebar.tsx index 07cab634..16cdf7f3 100644 --- a/packages/studio/src/components/Sidebar.tsx +++ b/packages/studio/src/components/Sidebar.tsx @@ -27,36 +27,36 @@ export function Sidebar({ nav, activePage, t }: { const { data: daemon } = useApi<{ running: boolean }>("/daemon"); return ( -