diff --git a/README.md b/README.md index 2a366be..f750b0f 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,16 @@ Open the local URL printed in the terminal. On first use, follow the interface t Development data is stored in `.agent-isles-home/` inside the repository by default. Set `DSH_HOME` before startup to use another location. +## Community and feedback + +Share your creations, exchange tips, and get help in the agent-isles QQ community (primarily Chinese). + +**QQ group: `543293474`** — scan with QQ or copy the number to search for the group. + +QR code for the agent-isles QQ community, group 543293474 + +For bugs and feature requests, use [GitHub Issues](https://github.com/Qiuner/agent-isles/issues) so progress can be tracked. + ## How it works ```text diff --git a/README.zh-CN.md b/README.zh-CN.md index 3dd4779..d8cdaee 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -118,6 +118,16 @@ corepack yarn dev:web --no-open 开发数据默认保存在仓库内的 `.agent-isles-home/`。如需更换位置,可在启动前设置 `DSH_HOME`。 +## 交流与反馈 + +欢迎加入 agent-isles 用户交流群,分享作品、交流使用心得、获取使用帮助。 + +**QQ 群:`543293474`** — 使用 QQ 扫码,或复制群号搜索加入。 + +agent-isles 用户交流群二维码,QQ群号 543293474 + +Bug 和功能建议请提交到 [GitHub Issues](https://github.com/Qiuner/agent-isles/issues),方便跟踪处理进展。 + ## 工作原理 ```text diff --git a/docs/community.js b/docs/community.js new file mode 100644 index 0000000..2a5d84c --- /dev/null +++ b/docs/community.js @@ -0,0 +1,21 @@ +const communityDialog = document.querySelector('#community-dialog') +const communityLink = document.querySelector('[data-community-open]') + +communityLink.addEventListener('click', event => { + event.preventDefault() + communityDialog.showModal() +}) +communityDialog.querySelector('[data-community-close]').addEventListener('click', () => communityDialog.close()) +communityDialog.addEventListener('click', event => { + const box = communityDialog.getBoundingClientRect() + if (event.target === communityDialog && (event.clientX < box.left || event.clientX > box.right || event.clientY < box.top || event.clientY > box.bottom)) communityDialog.close() +}) +communityDialog.querySelector('[data-community-copy]').addEventListener('click', async () => { + const status = communityDialog.querySelector('[role="status"]') + try { + await navigator.clipboard.writeText('543293474') + status.textContent = '群号已复制,打开 QQ 搜索加入。' + } catch { + status.textContent = '未能复制,请手动选择群号:543293474。' + } +}) diff --git a/docs/construction-plan.md b/docs/construction-plan.md index 4a2b439..511f72b 100644 --- a/docs/construction-plan.md +++ b/docs/construction-plan.md @@ -4,6 +4,8 @@ ## 产品目标 +用户交流群入口(2026-09-17,已实现待验收):中英文 README 增加 QQ 群号与二维码,介绍网站页脚增加交流群弹窗,支持复制群号、手动选择及 GitHub Issues 分流。二维码共用 `docs/images/qq-community.png`,保留原码并裁去外围留白。脚本语法、文档同步检查及本地浏览器弹窗打开、复制成功提示与画面检查通过;QQ 实际扫码与线上部署待验收。本轮范围为 README 和网站,应用内入口尚未实施。 + 官方桌面原生聊天显示(2026-09-17,已实现待验收):兼容 `conversation` / `main.conversation` 新旧 slot;带项目 Q 面板的原生输入框及控件显示、关闭重开、resize 与世界保持实测通过。真实消息流和审批仍未验收,详见 [官方桌面接入施工](official-desktop-plan.md)。 官方桌面产品插件(2026-09-17,已实现待验收):`upstream:desktop:probe --product --preview` 使用现有 Web 产品插件和独立新版依赖图,恢复原版角色对话与项目引导;共享 Fetch 接入原有领域处理器。Windows 产品页面、主岛/邻岛、角色选择及 17 项针对性回归通过;真实项目、模型、审批、通知与教程全程尚待验收。详见 [官方桌面接入施工](official-desktop-plan.md),生产 runtime 未切换。 diff --git a/docs/images/qq-community.png b/docs/images/qq-community.png new file mode 100644 index 0000000..7fe3df5 Binary files /dev/null and b/docs/images/qq-community.png differ diff --git a/docs/index.html b/docs/index.html index e94285f..f45e14a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,5 +11,16 @@

认识你的制作伙伴

说出目标。
一起把它实现。

Q 在中央平台等你。对话连接真实项目,工作进展留在原生工作台里。AI 完成一轮后,由你亲自检查结果。

选择你的开始方式 ↗
当前 Q 计算机与双机械臂的近景
Q · 世界模型实景

按自己的节奏

第一次尝试,或下一个想法。

LEARN

跟着学

从表达需求、选择文件夹,到体验作品。在真实创作中认识 AI Coding。

从第一步开始 ↗
CREATE

自由创作

带上已有项目,直接和 Q 对话。查阅文件、继续历史,按你的节奏推进。

带上你的项目 ↗

你的下一件作品

从这里开始。

Windows 10 / 11 · x64 · 本地运行

查看 Windows 发布版本 ↗

早期预览 · 模型需自行配置 · 安装包未签名
若发布页暂无附件,可按源码安装说明启动。

源码安装说明 ↗
- + + + +

AGENT-ISLES COMMUNITY

一起交流 AI 创作

+

分享作品、交流使用心得、获取使用帮助。

+使用 QQ 扫码加入 agent-isles 用户交流群,群号 543293474 +

QQ 群:543293474

+ +

+Bug 与功能建议 → GitHub Issues +
+ diff --git a/docs/site.css b/docs/site.css index 4f04f55..6492b0e 100644 --- a/docs/site.css +++ b/docs/site.css @@ -1,2 +1,14 @@ /* Voyager-inspired layout, using agent-isles branding and product content. */ +#community-dialog{border:1px solid #e9e9ec;border-radius:20px;padding:36px 28px 24px;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;text-align:center;color:var(--ink);background:white;box-shadow:0 24px 80px #0002} +#community-dialog::backdrop{background:#18241d66} +#community-dialog h2{font-size:26px;margin:10px 0 12px} +#community-description{font-size:14px;color:var(--muted)} +#community-dialog button{font-family:inherit;cursor:pointer;border:0} +#community-dialog button:focus-visible{outline:3px solid var(--green);outline-offset:4px} +.community-close{position:absolute;right:12px;top:10px;width:36px;height:36px;border-radius:50%;font-size:24px;color:var(--muted);background:var(--surface)} +.community-qr{width:240px;margin:20px auto;border-radius:12px} +.community-number{user-select:all} +#community-dialog .primary{margin-top:14px} +.community-status{min-height:24px;margin-top:10px;font-size:13px;color:var(--muted)} +#community-dialog .text-link{margin-top:8px;font-size:12px} :root{color-scheme:light;--ink:#3c3c43;--muted:#67676f;--green:#008b45;--line:#e9e9ec;--surface:#f6f6f7;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:white;color:var(--ink);line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}a:focus-visible{outline:3px solid var(--green);outline-offset:5px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}.navigation{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto}.brand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:650}nav{display:flex;gap:28px;font-size:14px;font-weight:550}main{max-width:1152px;padding:0 32px;margin:auto}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;padding:72px 0 100px;gap:40px}h1{font-size:clamp(36px,4.3vw,56px);line-height:1.2;font-weight:750;letter-spacing:-.04em}.product-name{display:block;color:#26b75e;margin-bottom:6px}.hero-description{font-size:21px;color:var(--muted);margin:24px 0 30px}.hero-logo{display:flex;align-items:center;justify-content:center}.hero-logo img{width:160px;height:160px;object-fit:contain}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:9px 22px;border-radius:24px;font-size:14px;font-weight:650}.primary{background:var(--green);color:white}.primary:hover{background:#00783b;color:white}.secondary{background:#ebebef;color:var(--ink)}.secondary:hover{background:#e1e1e6;color:var(--ink)}.welcome{text-align:center;padding:18px 0 40px}.welcome h2{font-size:32px;letter-spacing:-.03em;margin-bottom:16px}.welcome p{font-size:17px;color:var(--muted);line-height:1.9}.showcase{max-width:960px;margin:0 auto 60px}.showcase img{border-radius:12px;border:1px solid var(--line);width:100%;box-shadow:0 10px 35px #24242a0a}.showcase figcaption{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);padding:14px 0}.intro,.paths{padding:40px 0 70px}.eyebrow{font-size:12px;letter-spacing:.08em;color:var(--muted)}h2{font-size:32px;line-height:1.4;letter-spacing:-.035em;margin:12px 0 30px}h2 span{color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.steps article,.path-grid article{border:1px solid transparent;background:var(--surface);border-radius:12px;padding:28px}.number{font-size:12px;font-weight:650;color:var(--green)}h3{font-size:18px;margin:17px 0 10px}.steps p,.path-grid p,.body-copy{font-size:15px;color:var(--muted);line-height:1.85}.feature{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;padding:48px 0 80px;align-items:center}.feature img{border-radius:12px}.feature figcaption{font-size:12px;color:var(--muted);margin-top:10px}.feature h2{margin-bottom:20px}.text-link{display:inline-block;color:var(--green);font-size:14px;font-weight:550;margin-top:22px}.path-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.download{text-align:center;border-top:1px solid var(--line);padding:70px 0 80px}.download h2{font-size:38px;margin-bottom:18px}.download p{color:var(--muted)}.download .button{margin:24px 0}.download .fine{font-size:12px}footer{border-top:1px solid var(--line);padding:30px 32px;display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:12px}footer>div{display:flex;gap:20px;flex-wrap:wrap}section[id],figure[id]{scroll-margin-top:24px}@media(max-width:760px){.navigation{padding:0 24px;height:64px}nav{gap:18px;font-size:12px}nav a:first-child{display:none}main{padding:0 24px}.hero{grid-template-columns:1fr;text-align:center;padding:32px 0 54px;gap:30px}.hero-logo{grid-row:1}.hero-logo img{width:100px;height:100px}.hero-description{font-size:16px}.actions{justify-content:center}.welcome{padding-top:10px}.welcome h2,h2{font-size:26px}.welcome p{font-size:15px}.steps,.path-grid,.feature{grid-template-columns:1fr}.feature{gap:28px;padding:24px 0 50px}.showcase figcaption{display:block}.showcase figcaption span{display:block}.intro,.paths{padding:20px 0 45px}.download{padding:50px 0}.download h2{font-size:30px}footer{gap:16px;text-align:center}footer>div{justify-content:center}}