mirror of
https://github.com/Hmbown/DeepSeek-TUI.git
synced 2026-09-03 06:50:13 +08:00
* feat: make Pod the public roster surface Signed-off-by: CodeWhale Bot <bot@codewhale.net> * fix(tui): localize pod workers modal and restore fleet receipt compatibility Review-fix follow-up for the Pod public surface: - /pod workers modal routes all previously hardcoded English through tr() with 38 new MessageIds across all 15 shipped locales; a zh-Hans render test asserts no English leakage. - /pod workers means current-session sub-agents and /pod status the durable ledger, pinned per locale by a new localization test. - Durable receipt detail prefixes restored to the established fleet: spelling (lane render_detail, tui status_lines, resume detail) with regression tests at both layers; serde wire keys unchanged. Local proof (RUST_MIN_STACK=33554432, --locked): localization 49/49, fleet::control 11/11, subagents 33/33, commands fleet group 13/13, codewhale-lane 62/62; cargo fmt --check clean; locale key-set hash identical across all 15 packs. Signed-off-by: CodeWhale Bot <bot@codewhale.net> --------- Signed-off-by: CodeWhale Bot <bot@codewhale.net> Co-authored-by: CodeWhale Bot <bot@codewhale.net>
38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
/**
|
|
* <GettingStartedSteps> — renders the shared new-user path from
|
|
* web/lib/content/getting-started.ts: install → first offline session →
|
|
* provider connection → pod setup.
|
|
*
|
|
* Used by the homepage band and the /docs/guide page so the path reads
|
|
* identically in both places. Server component, SSG-safe.
|
|
*/
|
|
|
|
import Link from "next/link";
|
|
import { GETTING_STARTED_STEPS } from "@/lib/content/getting-started";
|
|
import { pickText } from "@/lib/i18n/dictionaries";
|
|
|
|
export function GettingStartedSteps({ locale = "en" }: { locale?: string }) {
|
|
return (
|
|
// data-reveal-group: the homepage's <RevealOnScroll> settles the four
|
|
// steps in sequence. On /docs/guide no observer is mounted and the
|
|
// attribute is inert — the list renders complete and static, as before.
|
|
<ol className="gs-steps" data-reveal-group>
|
|
{GETTING_STARTED_STEPS.map((step, index) => (
|
|
<li key={step.id} data-step-id={step.id}>
|
|
<span className="gs-step-index" aria-hidden="true">
|
|
{String(index + 1).padStart(2, "0")}
|
|
</span>
|
|
<h3>{pickText(step.title, locale)}</h3>
|
|
<p>{pickText(step.body, locale)}</p>
|
|
{step.commands.length > 0 && (
|
|
<pre className="code-block gs-step-commands"><code>{step.commands.join("\n")}</code></pre>
|
|
)}
|
|
<Link href={`/${locale}${step.link.href}`} className="gs-step-link">
|
|
{pickText(step.link.label, locale)} →
|
|
</Link>
|
|
</li>
|
|
))}
|
|
</ol>
|
|
);
|
|
}
|