P3 Slice Zero, Task 4 — replace Web free-text selection with the structured harness catalog (#1170)
ci/woodpecker/push/publish Pipeline failed

Co-authored-by: Jason Woltje <[email protected]>
This commit was merged in pull request #1170.
This commit is contained in:
2026-08-12 02:50:18 +00:00
committed by Mos
parent aca28405be
commit 9cd9409089
9 changed files with 1510 additions and 25 deletions
+3
View File
@@ -6,6 +6,7 @@ import { asFiniteNumberOrNull, asString } from '@/spa/chat/runtime-guards';
import { SessionPanel } from '@/spa/chat/session-panel';
import { ToolCallList } from '@/spa/chat/tool-call-list';
import { useChatConnection } from '@/spa/chat/use-chat-connection';
import { useHarnessSelection } from '@/spa/chat/use-harness-selection';
/** Renders a real value normally, but an honest "unavailable" label instead
* of a fabricated `0` for a missing/malformed count — a real `0 tokens` and
@@ -23,6 +24,7 @@ function formatCost(value: unknown): string {
export function ChatPage(): ReactElement {
const { state, actions } = useChatConnection();
const harness = useHarnessSelection();
const hasConversation = state.conversationId !== null;
return (
@@ -86,6 +88,7 @@ export function ChatPage(): ReactElement {
streaming={state.streaming}
sending={state.sending}
hasConversation={hasConversation}
harness={harness}
/>
</div>
);