fixed for both 7" and remote-hd display

This commit is contained in:
2026-03-19 10:28:13 +08:00
parent 11fbc219b5
commit d94d3278fa
4 changed files with 43 additions and 26 deletions

View File

@@ -7,37 +7,37 @@
}, },
"agent": { "agent": {
"gsd-planner": { "gsd-planner": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-plan-checker": { "gsd-plan-checker": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-phase-researcher": { "gsd-phase-researcher": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-roadmapper": { "gsd-roadmapper": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-project-researcher": { "gsd-project-researcher": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-research-synthesizer": { "gsd-research-synthesizer": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-codebase-mapper": { "gsd-codebase-mapper": {
"model": "opencode-go/kimi-k2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-executor": { "gsd-executor": {
"model": "opencode-go/minimax-m2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-debugger": { "gsd-debugger": {
"model": "opencode-go/minimax-m2.5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-verifier": { "gsd-verifier": {
"model": "opencode-go/glm-5" "model": "zai-coding-plan/glm-5"
}, },
"gsd-integration-checker": { "gsd-integration-checker": {
"model": "opencode-go/glm-5" "model": "zai-coding-plan/glm-5"
} }
} }
} }

View File

@@ -19,10 +19,10 @@ export function HelpView() {
const element = document.getElementById(id); const element = document.getElementById(id);
const panel = document.getElementById("details-panel"); const panel = document.getElementById("details-panel");
if (element && panel) { if (element && panel) {
const panelRect = panel.getBoundingClientRect(); panel.scrollTo({
const elementRect = element.getBoundingClientRect(); top: element.offsetTop - panel.offsetTop - 16,
const offset = elementRect.top - panelRect.top + panel.scrollTop; behavior: 'smooth'
panel.scrollTop = offset; });
} }
}; };
@@ -48,7 +48,7 @@ export function HelpView() {
return ( return (
<div className="h-full overflow-y-auto"> <div className="h-full overflow-y-auto">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4"> <div className="grid grid-cols-1 lg:grid-cols-[1fr_3fr] gap-4">
<div className="bg-gray-900 border border-gray-700 rounded-lg p-4 sticky top-0"> <div className="bg-gray-900 border border-gray-700 rounded-lg p-4 sticky top-0">
<h2 className="text-xl font-bold text-white mb-4">Table of Contents</h2> <h2 className="text-xl font-bold text-white mb-4">Table of Contents</h2>
<nav className="space-y-2"> <nav className="space-y-2">

View File

@@ -1,18 +1,28 @@
import { Components } from 'react-markdown'; import { Components } from 'react-markdown';
import React from 'react';
function getTextContent(children: React.ReactNode): string {
if (typeof children === 'string') return children;
if (Array.isArray(children)) return children.map(getTextContent).join('');
if (React.isValidElement(children) && children.props.children) {
return getTextContent(children.props.children);
}
return '';
}
export const components: Components = { export const components: Components = {
h1: ({ node, children, ...props }) => { h1: ({ children, ...props }) => {
const text = Array.isArray(children) ? children.join('') : String(children); const text = getTextContent(children);
const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, ''); const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
return <h1 id={id} {...props}>{children}</h1>; return <h1 id={id} {...props}>{children}</h1>;
}, },
h2: ({ node, children, ...props }) => { h2: ({ children, ...props }) => {
const text = Array.isArray(children) ? children.join('') : String(children); const text = getTextContent(children);
const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, ''); const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
return <h2 id={id} {...props}>{children}</h2>; return <h2 id={id} {...props}>{children}</h2>;
}, },
h3: ({ node, children, ...props }) => { h3: ({ children, ...props }) => {
const text = Array.isArray(children) ? children.join('') : String(children); const text = getTextContent(children);
const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, ''); const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
return <h3 id={id} {...props}>{children}</h3>; return <h3 id={id} {...props}>{children}</h3>;
}, },

View File

@@ -40,7 +40,7 @@ echo -e "${NC}"
show_menu() { show_menu() {
echo -e "${BOLD}Select an option:${NC}" echo -e "${BOLD}Select an option:${NC}"
echo "" echo ""
echo -e " ${GREEN}1)${NC} dev Start development server (port $DEV_PORT)" echo -e " ${GREEN}1)${NC} dev Start dual-mode (8888 kiosk + 9999 remote HD)"
echo -e " ${GREEN}2)${NC} dev:8888 Start dev server on port 8888 (kiosk mode)" echo -e " ${GREEN}2)${NC} dev:8888 Start dev server on port 8888 (kiosk mode)"
echo -e " ${GREEN}3)${NC} dev:9090 Start dev server on port 9090 (remote mode)" echo -e " ${GREEN}3)${NC} dev:9090 Start dev server on port 9090 (remote mode)"
echo -e " ${GREEN}4)${NC} dev:9999 Start dev server on port 9999 (remote HD mode)" echo -e " ${GREEN}4)${NC} dev:9999 Start dev server on port 9999 (remote HD mode)"
@@ -172,7 +172,7 @@ run_command() {
case $option in case $option in
1|dev) 1|dev)
run_dev_server $DEV_PORT run_dual_mode
;; ;;
2|dev:8888) 2|dev:8888)
run_dev_server 8888 run_dev_server 8888
@@ -252,5 +252,12 @@ if [ $# -gt 0 ]; then
exit 0 exit 0
fi fi
# No arguments: start dual-mode (both 8888 and 9999) # Interactive menu
run_dual_mode while true; do
show_menu
echo -n -e "${BOLD}Enter your choice (0-11 or p): ${NC}"
read -r choice
echo ""
run_command "$choice"
echo ""
done