Skip to content

Commit 36d2ea3

Browse files
fix(landing): fill the Codex Plugin mega-menu column and adopt the dsh one-line installer (#7139)
* fix(landing): fill the Codex Plugin mega-menu column and adopt the dsh one-line installer The product mega menu's Codex Plugin column rendered as a blank panel next to the populated Solution and Agent columns because it carried a head link only. Fill it with the plugin ecosystem's real destinations: the install anchor (reusing the plugin page's translated phase label, no new i18n keys) plus the Codex Design and DeepSeek Harness collection pages. The DeepSeek Harness agent guide still taught the manual npm-install path that requires a preinstalled Node.js toolchain. The published installer flow replaces it: per-OS one-line commands from open-design.ai/install-dsh.*, an isolated user-directory toolchain with no sudo and no global Node.js changes, pinned to the release OpenDesign has verified, finishing in dsh web for API-key setup. Setup section, credential note, quick-summary steps, and FAQ updated in both the English and Chinese guides; installer-specific FAQ entries added. * fix(landing): shape the Feature column per design and promote DeepSeek Harness Rework the first mega-panel column to the reviewed design: a localized Feature category head (new header i18n key across all 18 locales) with Codex Plugin as its entry, replacing the interim link list. In the Agent column, move DeepSeek Harness to the top with a red new-dot to mark the freshly launched integration. * fix(landing): roll the one-line installer into every active locale of the Harness guide The landing test suite guards the DeepSeek Harness guide content per active locale, so the installer switch has to land everywhere at once: ja/ko/de/fr/es/ru/pt-br/it/tr setup sections now carry the three per-OS one-line commands, the installer behavior list, the updated Web UI step and credential note, plus the reworked install FAQ and two new installer FAQs (translated, not machine-padded). Retired locales (vi/pl/id/nl/ar/uk/zh-tw) keep their legacy dead copy untouched. The content guard flips accordingly: it now requires all three installer URLs and rejects any resurfacing of the manual npm-install path; EN/ZH phrase anchors track the new intro copy. 147/147 landing tests pass; astro check clean. * fix(landing): refocus the Harness guide on design and add HowTo schema The guide led with a 'does DeepSeek Harness have a GUI' angle that is off the page's actual message. Refocus every active locale on the real narrative — designing with DeepSeek Harness through OpenDesign: design-first title and description, the GUI section, its TOC entry and FAQ removed (en/zh plus the nine localized copies; retired locales keep their dead copy). SEO on top of the accurate tutorial: add HowTo structured data built from the real five-step walkthrough (install → download → detect → connect → first task) with per-step section anchors, joining the existing Breadcrumb/WebPage/ItemList/FAQPage blocks. The content guard's title anchor tracks the new intent. * fix(landing): keep a #gui compatibility anchor on the Harness setup section The GUI section was removed in the design-first refocus, which broke saved and search-indexed /agents/deepseek-harness-design/#gui deep links. Alias the anchor onto the setup section so those links keep landing on content, without reintroducing the GUI copy. * fix(landing): give each HowToStep its instructional text The HowTo steps carried only headings and anchors; schema consumers that require an instructional field saw five names with no directions. Each step now carries its section's lead paragraph as plain text (markdown links and code markers stripped), falling back to the heading when a section opens without a paragraph. --------- Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
1 parent 8d62fda commit 36d2ea3

15 files changed

Lines changed: 217 additions & 118 deletions

apps/landing-page/app/_components/header.tsx

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ const TOOL_ENTRIES: ReadonlyArray<{ href: string; key: SolutionPageKey }> = [
7373

7474
// Agent column — the coding agents with a dedicated long-form design page
7575
// upstream. Routes stay in lockstep with main's /agents/ hub.
76-
const AGENTS: ReadonlyArray<{ name: string; route: string }> = [
76+
const AGENTS: ReadonlyArray<{ name: string; route: string; highlight?: boolean }> = [
77+
// DeepSeek Harness leads with a red-dot highlight while its integration is
78+
// the freshly launched entry (2026-08 request); demote when the push ends.
79+
{ name: 'DeepSeek Harness', route: 'deepseek-harness-design', highlight: true },
7780
{ name: 'Codex', route: 'codex-design' },
7881
{ name: 'Cursor Agent', route: 'cursor-design' },
7982
{ name: 'Claude Code', route: 'claude-code-design' },
@@ -84,7 +87,6 @@ const AGENTS: ReadonlyArray<{ name: string; route: string }> = [
8487
{ name: 'Grok Build', route: 'grok-design' },
8588
{ name: 'Kimi CLI', route: 'kimi-design' },
8689
{ name: 'DeepSeek TUI', route: 'deepseek-design' },
87-
{ name: 'DeepSeek Harness', route: 'deepseek-harness-design' },
8890
{ name: 'Trae CLI', route: 'trae-cli-design' },
8991
{ name: 'Aider', route: 'aider-design' },
9092
{ name: 'Antigravity', route: 'antigravity-design' },
@@ -245,25 +247,29 @@ export function Header({
245247
className='nav-dropdown nav-dropdown-mega'
246248
aria-label={productMenuCopy.product}
247249
>
248-
{/* Plugin column — the Codex plugin entry. The product
249-
family (HTML Anything / HTML Video / Codex Slides) moved
250-
to the footer only (2026-08 nav consolidation); the mega
251-
panel now carries Plugin + the former Solution groups. */}
250+
{/* Feature column — the first mega-panel group. The former
251+
head-only "Codex Plugin" column read as a blank panel next
252+
to the populated Solution/Agent columns (live bug), so the
253+
column is now the localized "Feature" category with Codex
254+
Plugin as its first entry (2026-08 design). The product
255+
family (HTML Anything / HTML Video / Codex Slides) stays
256+
footer-only per the 2026-08 nav consolidation. */}
252257
<li className='nav-mega-col nav-mega-col-merged'>
253-
{/* Product name as the column head-link, not a translatable
254-
phrase — same convention as "Codex Slides" before it.
255-
The localized "Plugins" label is reserved for the
256-
Resources → /plugins/ catalog hub to avoid one chrome
257-
word pointing at two destinations. */}
258-
<a
259-
href={href('/codex-plugin/')}
260-
className={
261-
'nav-mega-col-head' +
262-
(active === 'open-design-plugin' ? ' is-active' : '')
263-
}
264-
>
265-
Codex Plugin
266-
</a>
258+
<span className='nav-mega-col-head'>{productMenuCopy.feature}</span>
259+
<ul className='nav-mega-list'>
260+
{/* Product name, not a translatable phrase — same
261+
convention as the Agent column entries. */}
262+
<li>
263+
<a
264+
href={href('/codex-plugin/')}
265+
className={
266+
active === 'open-design-plugin' ? 'is-active' : undefined
267+
}
268+
>
269+
<span className='dropdown-name'>Codex Plugin</span>
270+
</a>
271+
</li>
272+
</ul>
267273
</li>
268274
{/* Former Solution dropdown, folded into the mega panel as
269275
three side-by-side columns (Use cases / Roles / Tools). */}
@@ -330,7 +336,12 @@ export function Header({
330336
{AGENTS.map((agent) => (
331337
<li key={agent.route}>
332338
<a href={href(`/agents/${agent.route}/`)}>
333-
<span className='dropdown-name'>{agent.name}</span>
339+
<span className='dropdown-name'>
340+
{agent.name}
341+
{agent.highlight ? (
342+
<span className='nav-new-dot' aria-hidden='true'></span>
343+
) : null}
344+
</span>
334345
</a>
335346
</li>
336347
))}

0 commit comments

Comments
 (0)