mirror of
https://github.com/alphaXiv/OpenResearch.git
synced 2026-10-02 01:34:34 +08:00
* Nudge new installs to run the demo experiment Analytics for Sep 9-12 installs showed the largest funnel leak between "onboarding complete" and "first message sent" (43.8%). The demo welcome steered users to read the recorded sessions rather than send anything. - Rename the welcome's primary button to "Run the demo experiment" and hand focus to the composer, which already holds the run-experiment prompt. - Keep that prefill on offer until the user has sent anything in the demo, detected by a recorded session's active leaf moving off its seeded message or a new session appearing, instead of only until the welcome closes. - Show a dismissible hint above the composer explaining the 200-step probe, with a ring on the send button while the prefilled prompt is untouched. - Open only the experiments tab on the first demo visit. - Default the right pane to a quarter of the window (max 480px) on installs with no saved layout, and share that default with the projects home so it is not overwritten before the demo opens. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Refine the demo nudge and add a running-experiment hint - Relabel the welcome button "Try the demo experiment": the click only focuses the prefilled prompt, so "Run" over-promised. - Style the composer hint as a neutral surface bubble instead of a tint. - When a demo run starts, show a second dismissible hint above the composer with a Logs button that opens that run's logs; it clears when the run leaves the running state. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Address review on the running-experiment hint - Seed the running-run hint from the runs baseline so it survives a reload or a return to the demo project mid-run. - Announce the hint to assistive tech via a polite live region and return focus to the composer on dismiss, matching the prompt hint. - Share the hint bubble classes, drop the redundant Logs tooltip key, and use the idiomatic Arabic phrasing for the tap instruction. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
62 lines
3.5 KiB
HTML
62 lines
3.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<title>OpenResearch</title>
|
|
<script>
|
|
// Resolve the theme before first paint to avoid a flash of the wrong palette.
|
|
// Storage key and resolution must match src/theme.ts.
|
|
(function () {
|
|
try {
|
|
var pref = localStorage.getItem("orx:theme") || "system";
|
|
var dark =
|
|
pref === "dark" ||
|
|
(pref !== "light" &&
|
|
window.matchMedia("(prefers-color-scheme: dark)").matches);
|
|
document.documentElement.dataset.theme = dark ? "dark" : "light";
|
|
} catch (e) {
|
|
document.documentElement.dataset.theme = "light";
|
|
}
|
|
})();
|
|
// Resolve language before first paint; keep supported in sync with project.inlang/settings.json.
|
|
(function () {
|
|
var saved = null;
|
|
try { saved = localStorage.getItem("orx:locale"); } catch (e) {}
|
|
var browserPreferences = navigator.languages || [navigator.language];
|
|
var supported = ["en", "zh-CN", "fa", "ar"];
|
|
var match = function (tag) {
|
|
if (!tag) return null;
|
|
var normalized = String(tag).toLowerCase();
|
|
for (var j = 0; j < supported.length; j += 1) {
|
|
if (supported[j].toLowerCase() === normalized) return supported[j];
|
|
}
|
|
return null;
|
|
};
|
|
var locale = match(saved);
|
|
for (var i = 0; !locale && i < browserPreferences.length; i += 1) {
|
|
var preference = browserPreferences[i];
|
|
locale = match(preference) || match(String(preference).split("-")[0]);
|
|
}
|
|
locale = locale || "en";
|
|
document.documentElement.lang = locale;
|
|
document.documentElement.dir = "ltr";
|
|
})();
|
|
</script>
|
|
<style>
|
|
/* Pre-CSS background; keep in sync with --base in src/tailwind.css. */
|
|
html { background: #ffffff; }
|
|
html[data-theme="dark"] { background: #0e0c0c; }
|
|
</style>
|
|
<script type="module" crossorigin src="/assets/index-C4inFLcC.js"></script>
|
|
<link rel="stylesheet" crossorigin href="/assets/index-CdfPFYKN.css">
|
|
</head>
|
|
<body>
|
|
<div
|
|
id="root"
|
|
class="[&_:where([data-tip])]:relative [&_:where([data-tip])::after]:content-[attr(data-tip)] [&_:where([data-tip])::after]:absolute [&_:where([data-tip])::after]:top-[calc(100%_+_6px)] [&_:where([data-tip])::after]:left-1/2 [&_:where([data-tip])::after]:-translate-x-1/2 [&_:where([data-tip])::after]:w-max [&_:where([data-tip])::after]:max-w-none [&_:where([data-tip])::after]:bg-text [&_:where([data-tip])::after]:text-background [&_:where([data-tip])::after]:text-xs [&_:where([data-tip])::after]:font-medium [&_:where([data-tip])::after]:leading-none [&_:where([data-tip])::after]:py-[5px] [&_:where([data-tip])::after]:px-2 [&_:where([data-tip])::after]:rounded-sm [&_:where([data-tip])::after]:whitespace-nowrap [&_:where([data-tip])::after]:opacity-0 [&_:where([data-tip])::after]:invisible [&_:where([data-tip])::after]:pointer-events-none [&_:where([data-tip])::after]:z-[9999] [&_:where([data-tip]):is(:hover,:focus-visible)::after]:opacity-100 [&_:where([data-tip]):is(:hover,:focus-visible)::after]:visible [&_[data-tip-align='start']::after]:start-0 [&_[data-tip-align='start']::after]:translate-none [&_[data-tip-align='end']::after]:end-0 [&_[data-tip-align='end']::after]:start-auto [&_[data-tip-align='end']::after]:translate-none"
|
|
></div>
|
|
</body>
|
|
</html>
|