From 45b3cd15dff2443da352617988681cb7de0e2181 Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Sat, 13 Jun 2026 22:23:58 +0900 Subject: [PATCH] Research: rotate textarea placeholder through 10 example queries Each time the panel opens we pick a random entry from a list of 10 diverse research prompts (history, tech, food, science, fact-check, how-to) so the textarea hint feels fresh and shows the breadth of queries the tool handles instead of always nudging toward the same Odysseus example. --- static/js/research/panel.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/static/js/research/panel.js b/static/js/research/panel.js index d515580ad..117addccc 100644 --- a/static/js/research/panel.js +++ b/static/js/research/panel.js @@ -7,6 +7,26 @@ import createResearchSynapse from '../researchSynapse.js'; import spinnerModule from '../spinner.js'; import { sortModelIds } from '../modelSort.js'; +// Rotating research textarea placeholders — pick one at random each +// time the panel is rendered so the example keeps feeling fresh. +const _RESEARCH_HINTS = [ + "e.g. Trace Odysseus's ten-year journey home from Troy — every island, monster, and detour, and why each one cost him", + "e.g. Compare Rust and Go for building a high-throughput web API in 2026", + "e.g. Fact-check whether honey actually never spoils", + "e.g. How to roast a duck so the skin stays crispy", + "e.g. The collapse of Bronze Age civilizations — leading theories and the evidence behind each", + "e.g. Best M.2 NVMe SSDs under $200 for a home AI workstation", + "e.g. Why do cats knead with their paws? Cover the leading behavioural explanations", + "e.g. Side effects and benefits of long-term creatine supplementation", + "e.g. How does end-to-end encryption work in Signal, step by step", + "e.g. The history of the printing press in East Asia, 700 CE → 1600 CE", +]; +function _pickResearchHint() { + const i = Math.floor(Math.random() * _RESEARCH_HINTS.length); + // Escape double-quotes so we can safely splice into a placeholder="…" attribute. + return _RESEARCH_HINTS[i].replace(/"/g, '"'); +} + // jobId -> { synapse, status } — survives across _renderJobs() rebuilds so // the SVG keeps its accumulated nodes/edges between progress events. const _jobSynapses = new Map(); @@ -354,7 +374,7 @@ function _buildPanelHTML() { Multi-step web research with an LLM-in-the-loop agent

- +