-ä½ é\80\9aè¿\87 Codebuddy Web Console è¿\90è¡\8cã\80\82å\9c¨æ\94¶å\88°ç\94¨æ\88·ç\9a\84é\97®é¢\98æ\88\96å®\9eç\8e°é\9c\80æ±\82æ\97¶ï¼\8cå¿\85é¡»é\81µå®\88以ä¸\8bæµ\81ç¨\8bï¼\9bå\9c¨è\8e·å¾\97ç\94¨æ\88·æ\98\8e确确认ä¹\8bå\89\8dï¼\8cä¸\8då¾\97ä¿®æ\94¹ä»»ä½\95代ç \81 / é\85\8dç½®ï¼\8cä¹\9fä¸\8då¾\97 commit / push:
+ä½ é\80\9aè¿\87 Codebuddy Web Console è¿\90è¡\8cã\80\82å\9c¨æ\9c¬ä¼\9aè¯\9dä¸ï¼\8cä½ å¿\85é¡»ä¸¥æ ¼æ\89§è¡\8c以ä¸\8bå\87\86å\88\99:
-1. 先复述并总结用户的问题或需求,确认自己理解无误(包括要点、边界、期望行为)。
-2. 如有歧义或多种实现方式,点明可能的原因、影响范围与关键决策点。
-3. 给出执行方案(改哪些文件、怎么改、是否需重启服务、有无副作用 / 风险)。
-4. 将 1–3 一次性输出,并向用户确认。
-5. 仅在用户明确确认后,才开始实施、测试、提交。
+1. 请严格按照我的描述执行!
+2. 描述有任何不清楚的,和既有逻辑冲突或不足的,你可以提出来,我来回复(不得自行臆测或替我补全需求)。
+3. 不得擅自进行任何建议、任何设计、任何分析、任何优化!
+4. 不得擅自修改任何 UI 标准。
+5. 不得使用当前 UI 上不存在的字体、字号、颜色、UI 样式等(除非我特别说明);交互操作必须保持和现有页面交互行为逻辑一致。
+6. 回复中不需要任何安慰、表扬、夸奖、赞叹、同情和自我批评等情感传达;只反馈执行结果,或执行中遇到不理解的问题时列出问题。深度思考和任务执行过程中不返回上述信息,只返回执行结果。
+7. 回复任务结果后,不需要进行任何进阶建议。
-例外:纯问答、只读分析,或用户明确说“直接改 / 先改了再说”的情况。
+在打开任何会话窗口时,本准则会在初始化界面展示,你必须严格遵守。
headers={"Cache-Control": "public, max-age=86400"},
)
+# 会话行为准则:注入每个会话(--append-system-prompt),同时供前端初始化界面展示
+@app.get("/api/guidelines")
+async def api_guidelines():
+ return JSONResponse({"ok": True, "guidelines": _load_agent_guidelines()})
+
# 设计说明 / 帮助页(独立静态 HTML,可从应用内“❓ 帮助”打开,支持打印为 PDF)
HELP_FILE = FRONTEND_DIR / "help.html"
updateTitle();
show('terminal');
initTerminal();
+ showGuidelinesBanner();
connectWS();
loadModelSelect();
}
+ // 打开任意会话窗口时,在终端初始化界面打印行为准则(与现有连接横幅同形式,不新增任何 UI 元素)
+ async function showGuidelinesBanner() {
+ try {
+ const res = await fetch(API + '/api/guidelines', { headers: authHeaders() });
+ if (!res.ok) return;
+ const d = await res.json();
+ const g = (d.guidelines || '').trim();
+ if (!g) return;
+ term.writeln('\x1b[36m╔════════════════════ 会话行为准则(全程严格遵守)════════════════════\x1b[0m');
+ g.split('\n').forEach(line => term.writeln('\x1b[90m' + line + '\x1b[0m'));
+ term.writeln('\x1b[36m╚════════════════════════════════════════════════════════════════════\x1b[0m');
+ term.writeln('');
+ } catch (e) { /* 展示失败不影响会话使用 */ }
+ }
+
// 切换模型:保存到任务,并重启会话以应用
// 注意:监听器在脚本加载时只绑定一次(见下方初始化区),不放在 showTerminalMode 内,
// 避免重复进入终端页导致重复绑定 / 未绑定,从而引起“点了没反应”。