Files
zooqueenandHanzo Dev 11165b887c One chat, two hosts: the window builds the same chat the workbench does
The detached window carried its own copy of the chat — inline styles,
seven fallback hexes, hover done in JS, a middot standing in for every
icon — and none of the --hanzo-chat-* tokens reached it because the
container class never did. The builder is now build(container) in
chat/index.ts, returning the topbar's actions slot; view.ts is the
workbench host and appends Detach, chat-main.ts is the window host and
appends Reattach. The window loads monaco's real codicon face.

The empty state never left: its removal selector matched
"justify-content:center" without the space the browser serialises, so
the hero stayed behind every conversation. It is found by class now,
and it is the stylesheet's empty state rather than an inline one.

Outside the shell the cloud is the provider, so the provider-setup
screen no longer replaces the chat in a browser; the session and agent
selects show their defaults whether or not an engine answered; shell-
only probes (window close handler, memory backend) no longer warn there.
The workbench names the chat in defaultLayout.views, so ide.hanzo.ai
opens with the chat visible instead of behind a hidden auxiliary bar.

User text wears the UI face; the thinking select sizes to its content;
Reattach only exists inside the shell. e2e/chat.spec.ts drives both
hosts against a stubbed completions stream.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-03 11:39:28 -07:00

54 lines
1.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hanzo Chat</title>
<style>
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
width: 100%;
overflow: hidden;
background: #1e1e1e;
color: #d4d2cc;
}
/*
* Shim fojr the VS Code design tokens the chat panel uses. The full
* workbench (index.html) gets these from monaco-vscode-api's CSS
* injection. The detached chat window does NOT load the workbench, so
* we provide a minimal subset here. Values mirror the dark+ theme
* defaults so the chat looks the same across both hosting contexts.
*/
:root {
--vscode-foreground: #cccccc;
--vscode-descriptionForeground: #9d9d9d;
--vscode-editor-background: #1e1e1e;
--vscode-sideBar-background: #181818;
--vscode-input-background: #2b2b2b;
--vscode-input-foreground: #cccccc;
--vscode-input-border: #3c3c3c;
--vscode-button-background: #ffffff;
--vscode-button-foreground: #1a1a1a;
--vscode-widget-border: rgba(255, 255, 255, 0.08);
--vscode-textLink-foreground: #4daafc;
}
</style>
</head>
<body>
<div id="hanzo-chat-detached-root" class="hanzo-chat-container"></div>
<script type="module" src="/src/chat-main.ts"></script>
</body>
</html>