Skip to content

Releases: OpenCoworkAI/open-codesign

v0.2.1

23 May 18:12

Choose a tag to compare

🌐 Languages: English (below) · 简体中文

v0.2.1 — Corporate networks, local workspace mode, and ChatGPT image generation

Connect to internal LLM gateways behind a proxy or self-signed cert, design directly in a local folder, and use your ChatGPT subscription for image generation.

Highlights

  • 🗂 Local workspace mode — designs can be created directly against a local folder, with file browsing, project rebinding, and live local preview. by @mussonking (#334)
  • 🌐 HTTP proxy support — new field in Settings → Advanced. Applied to both Chromium and Node (uppercase + lowercase env vars), takes effect immediately, no restart needed. by @gandrenacci 🎉 (#350)
  • 🔓 TLS verification toggle (per-provider) — opt-in per custom/imported provider for connecting to corporate gateways with self-signed or private-CA certificates. Built-in providers (Anthropic, OpenAI, OpenRouter, Ollama) remain fully secured. (#355, addressing #229)
  • 🎨 ChatGPT subscription for image generationgenerate_image_asset can now use your ChatGPT OAuth bearer instead of requiring a separate OpenAI API key. by @Sun-sunshine06 (#321)

What's fixed

Networks & gateways:

  • HTTP proxy applied to both Chromium's network stack and Node's HTTP(S)_PROXY env vars, with lowercase mirrors for tools that only honor the lowercase spelling by @gandrenacci 🎉 (#350)
  • TLS verification can now be disabled per non-built-in provider; covers connection-test, models discovery, generation, and the codesign:apply-comment IPC path (#355)

Desktop & runtime:

  • pnpm dev and the preview-runtime Puppeteer spawn now pass --no-sandbox when launched as uid 0, unblocking containers, dev VMs, and CI runners by @tiegebentley 🎉 (#356)
  • Workspace files watcher now falls back to polling for any filesystem watch error (previously only EPERM/EACCES/EISDIR), covering EINVAL / ENOSPC / ERR_FEATURE_UNAVAILABLE_ON_PLATFORM on Windows UNC paths, full disks, and Bun runtimes by @mussonking (#352)
  • Workspace Markdown links can no longer replace the app window by @snowopsdev 🎉 (#340)
  • Local workspace comments stabilized by @mussonking (#344)

Security:

  • Agent-supplied SVG rendering hardened, encrypted secret-storage migration restored under Electron, private-network provider probes guarded by @snowopsdev 🎉 (#311)

Documentation:

  • v0.2 ChatGPT subscription sign-in and provider support copy refreshed by @Sun-sunshine06 (#323)

Install

# Windows
winget install OpenCoworkAI.OpenCoDesign

# macOS
brew install --cask opencoworkai/tap/open-codesign

# Or direct download
# https://github.com/OpenCoworkAI/open-codesign/releases/tag/v0.2.1

First-time contributors 🎉

Welcome! These contributors land their work in v0.2.1:

Special thanks

  • @kkksasasa — for the issue #229 writeup that drove the TLS verification bypass design (full root-cause analysis and patch sketch — network constraints prevented them from submitting a PR, but the implementation in #355 directly follows their plan)
  • @gandrenacci — for both filing the corporate proxy report (#349) and submitting the fix (#350)
  • @Sun-sunshine06 — continued provider/diagnostics polish across the v0.2 line
  • LINUX DO + WeChat community — for the ongoing v0.2 feedback wave

中文版

v0.2.1 — 企业网络、本地工作区模式、ChatGPT 图像生成

现在能在企业代理或自签 CA 后面连接内部 LLM 网关、能直接在本地文件夹里做设计、能用 ChatGPT 订阅生成图像。

本版亮点

  • 🗂 本地工作区模式 — 设计可以直接绑定本地文件夹,支持文件浏览、项目重绑、本地实时预览 by @mussonking (#334)
  • 🌐 HTTP 代理支持 — Settings → Advanced 新增字段。同时作用于 Chromium 和 Node(大小写 env vars 都写),保存即生效,无需重启 by @gandrenacci 🎉 (#350)
  • 🔓 TLS 验证开关(按 provider) — 自定义/导入的 provider 可单独关闭 TLS 证书校验,用于连接公司自签 CA 内部网关。内置 provider(Anthropic / OpenAI / OpenRouter / Ollama)保持严格校验 (#355,解 #229)
  • 🎨 ChatGPT 订阅可用于图像生成generate_image_asset 现在可以走 ChatGPT OAuth bearer,不再强制单独配置 OpenAI API key by @Sun-sunshine06 (#321)

修复

网络与网关:

  • HTTP 代理同时作用于 Chromium 网络栈和 Node HTTP(S)_PROXY 环境变量,含小写镜像(部分工具只认小写) by @gandrenacci 🎉 (#350)
  • TLS 校验可按非内置 provider 单独关闭;覆盖 connection-test、models discovery、生成、以及 codesign:apply-comment IPC 路径 (#355)

桌面端与运行时:

  • pnpm dev 和 preview-runtime 的 Puppeteer 在 uid 0(root)下启动时自动加 --no-sandbox,解锁容器、dev VM、CI runner 环境 by @tiegebentley 🎉 (#356)
  • workspace 文件 watcher 在任何 fs.watch 错误下都降级到 polling(之前仅 EPERM/EACCES/EISDIR),覆盖 Windows UNC 路径、磁盘满、Bun 运行时的 EINVAL/ENOSPC/ERR_FEATURE_UNAVAILABLE_ON_PLATFORM by @mussonking (#352)
  • workspace Markdown 链接不再能替换 app 窗口 by @snowopsdev 🎉 (#340)
  • 本地 workspace 评论稳定性修复 by @mussonking (#344)

安全:

  • 加固 agent 提供的 SVG 渲染;恢复 Electron 下的加密 secret 存储迁移;私网 provider 探测加保护 by @snowopsdev 🎉 (#311)

文档:

安装

# Windows
winget install OpenCoworkAI.OpenCoDesign

# macOS
brew install --cask opencoworkai/tap/open-codesign

# 或直接下载
# https://github.com/OpenCoworkAI/open-codesign/releases/tag/v0.2.1

首次贡献者 🎉

欢迎!这些贡献者首次出现在 release 中:

特别感谢

  • @kkksasasa — 提供 issue #229 的完整根因分析与方案草图(因网络限制无法直接提 PR,但 TLS bypass 实现 #355 沿用了他给的设计)
  • @gandrenacci — 同时提交 issue #349 corp 代理报告并自己写出 #350 修复
  • @Sun-sunshine06 — 持续打磨 v0.2 这条线的 provider 与 diagnostics
  • LINUX DO 与微信群朋友们 — v0.2 持续反馈

Full changelog / 完整变更

Features

  • feat(desktop): add HTTP proxy setting in advanced preferences (#350)
  • feat(desktop): add per-provider TLS verification bypass (#355)
  • feat: add local workspace workflow (#334)

Bug Fixes

  • fix(desktop): harden workspace watcher fallback (#352)
  • fix(desktop): support --no-sandbox when launched as uid 0 (#356)
  • fix desktop navigation boundary (#340)
  • fix: allow ChatGPT OAuth for image generation (#321)
  • [codex] Stabilize local workspace comments (#344)
  • Harden agent SVG rendering, secret storage, and provider probes (#311)

Documentation

  • docs: refresh v0.2 subscription copy (#323)

Dependencies

  • bump the tailwind group across 1 directory with 3 updates (#331)
  • bump the react group across 1 directory with 3 updates (#354)
  • bump turbo from 2.9.9 to 2.9.14 (#353)
  • bump electron from 39.8.9 to 39.8.10 (#329)
  • bump @biomejs/biome from 2.4.14 to 2.4.15 (#328)
  • bump @types/node from 22.19.17 to 22.19.19 (#327)
  • bump pnpm/action-setup from 4.3.0 to 4.4.0 (#325)
  • bump github/codeql-action from 3.35.4 to 3.35.5 (#346)
  • bump github/codeql-action from 3.35.3 to 3.35.4 (#326)

Full Changelog: v0.2.0...v0.2.1

v0.2.0

09 May 08:44

Choose a tag to compare

Features

  • feat(workspace): read existing files in bound folders + visible Files panel
  • feat(shared,providers,core): explicit provider capability profile (#206)
  • feat(shared,desktop,providers,core): align connection test and invoca…
  • feat(desktop): align connection test credential resolution with runtime
  • feat(desktop): workspace for each design projects
  • feat(shared,desktop): add provider capability profiles

Bug Fixes

  • fix: update ChatGPT Codex model hints
  • fix: improve generation failure diagnostics
  • fix(exporters): paginate sectionless PPTX screenshots
  • fix: address code scanning alerts
  • fix(desktop): quiet missing update channel checks
  • fix(desktop): repair stale scaffold manifests
  • fix(desktop): fall back from denied workspace watches
  • fix(desktop): guard design system linking before onboarding
  • fix(shared): diagnose blocked 403 generation errors
  • fix(desktop): clarify terminated generation errors
  • fix(desktop): explain workspace binding conflicts
  • fix(desktop): show delivered previews in files panel
  • fix(core): retry reasoning content failures
  • fix(core): cap done repair loop
  • fix(providers): keep Kimi and MiniMax chat models non-reasoning
  • fix(exporters): preserve local assets in exports
  • fix: avoid calc utility parsing in model search
  • fix(desktop): restore garbled Chinese text in codex-oauth-ipc.ts (#202)
  • fix(lint): resolve biome check failures blocking push
  • fix: clarify ChatGPT OAuth region login errors

Documentation

  • Harden agent SVG rendering, secret storage, and provider probes
  • fix(exporters): paginate sectionless PPTX screenshots
  • fix: address code scanning alerts
  • fix(desktop): quiet missing update channel checks
  • fix(desktop): repair stale scaffold manifests
  • fix(desktop): fall back from denied workspace watches
  • fix(desktop): guard design system linking before onboarding
  • fix(shared): diagnose blocked 403 generation errors
  • fix(desktop): clarify terminated generation errors
  • fix(desktop): explain workspace binding conflicts
  • fix(desktop): show delivered previews in files panel
  • fix(core): retry reasoning content failures
  • fix(core): cap done repair loop
  • fix(providers): keep Kimi and MiniMax chat models non-reasoning
  • fix(exporters): preserve local assets in exports
  • chore: promote dev/v0.2 to main
  • feat(workspace): read existing files in bound folders + visible Files panel
  • Feat(i18n): add full Spanish (ES) language support
  • fix: clarify ChatGPT OAuth region login errors
  • feat(desktop): workspace for each design projects

Other Changes

  • chore: promote dev/v0.2 to main
  • chore(deps): bump puppeteer-core from 24.41.0 to 24.42.0
  • chore(deps): bump lucide-react from 1.8.0 to 1.11.0
  • chore(deps): bump @mariozechner/pi-agent-core from 0.67.68 to 0.70.2
  • chore(deps-dev): bump the tailwind group across 1 directory with 3 updates
  • chore(deps-dev): bump electron from 39.8.8 to 39.8.9 in the electron group across 1 directory
  • chore(deps): bump @mariozechner/pi-ai from 0.67.68 to 0.70.2
  • chore(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.3

Full Changelog: v0.1.4...v0.2.0

v0.1.4

23 Apr 10:23
fb3f902

Choose a tag to compare

🌐 Languages: English (below) · 简体中文

v0.1.4 — AI images, ChatGPT subscription login, and a big reliability wave

Everything you'd run into on a tricky API setup now tells you exactly what's wrong — plus the agent can now generate its own images.

Highlights

  • 🎨 AI image generation — the agent can now generate bitmap assets (heroes, product shots, illustrations, logos) inline while designing. gpt-image-2 via OpenAI, or any OpenRouter image model. Off by default; opt in from Settings. by @yangjunx21 🎉
  • 🔐 ChatGPT Plus / Codex subscription login — one-click OAuth, no API key required. Your existing subscription becomes your model budget.
  • ⚙️ CLIProxyAPI one-click import — Open CoDesign now detects a running CLIProxyAPI instance on startup and imports it automatically. Preset + smart model auto-discovery included for manual setup.
  • 🛠 Clearer errors for third-party relays — connections that time out, truncate SSE, or reject the Messages API now give actionable hints instead of undefined. If your relay is misbehaving, you'll know which one and why.

What's fixed

Provider & relay compatibility (the big wave):

  • Gemini via third-party relay: API keys with the models/ prefix now work correctly (fixes #175, reported by @CaioGS06) by @Sun-sunshine06
  • OpenAI Responses endpoints no longer reject with "instructions are required" (fixes #134) by @Sun-sunshine06
  • Gateways without /v1/messages now return a clear error pointing at the wire-protocol mismatch (fixes #158) by @Sun-sunshine06
  • Third-party relay SSE truncation on response event names now surfaces a diagnostic hint instead of a silent early stop (fixes #167, #180) by @Sun-sunshine06
  • Custom OpenAI-compat endpoints that don't expose /models can now still be tested (fixes #179)
  • reasoning=true flag is only sent to known OpenAI reasoning models (fixes #183) — no more random rejects from Qwen / DeepSeek / third-party
  • First-turn agent generation now retries on transient upstream errors (fixes #125, reported by @Sun-sunshine06)

Desktop polish:

  • Generation timeout now keeps its reason instead of collapsing to "Request was aborted" (fixes #169)
  • Settings active-model card no longer misrepresents the model when it's not in the fetched list (fixes #136, reported by @Sun-sunshine06)
  • ChatGPT OAuth login now has a cancel button mid-flow (fixes #172) by @Sun-sunshine06
  • Add-menu tooltip behaviour and labels restored (fixes #156) by @1WorldCapture 🎉

Codex reliability:

  • Codex token-store now wraps JSON parse errors and writes atomically (fixes #128, reported by @Sun-sunshine06)
  • Screenshot attachments now reach ChatGPT Codex correctly (fixes #157) by @Sun-sunshine06
  • Ollama is now hidden from Codex import until you add it manually — no phantom provider noise (fixes #170) by @L4b0R 🎉

Diagnostics:

  • Generate failures now bridge into diagnose() hypotheses so you get targeted fix suggestions (fixes #130, reported by @Sun-sunshine06)

Release pipeline:

  • macOS arm64 DMG ships with the correct native module (fixes #176, reported by @bytegh)
  • Coding-plan app allowlists now surface a clear warning when provider expects them (fixes for subscription-plan setups)

Internationalisation:

  • Brazilian Portuguese (pt-BR) locale added by @DavidgFernandes 🎉
  • CLIProxyAPI i18n keys deduped after parallel-worktree merge

Install

# Windows
winget install OpenCoworkAI.OpenCoDesign

# macOS
brew install --cask opencoworkai/tap/open-codesign

# Or direct download
# https://github.com/OpenCoworkAI/open-codesign/releases/tag/v0.1.4

First-time contributors 🎉

Welcome! This release is the first one with your work in it:

Special thanks

For bug reports, reproduction steps, and issue triage:

  • @CaioGS06 — Gemini third-party relay bug report (#175)
  • @bytegh — macOS local database / DMG reproducibility report (#176)
  • LINUX DO community — for continued feedback since v0.1.0 first launched there.
  • WeChat group members — for first-look testing and UX suggestions.
  • Microsoft winget-pkgs maintainers — for approving our package manifest so winget install now works out of the box

中文版

v0.1.4 — AI 图像生成、ChatGPT 订阅登录,以及大波稳定性修复

各种棘手的 API 配置问题,现在都能给你明确的错误提示;agent 还学会了自己生成配图。

本版亮点

  • 🎨 AI 图像生成 — agent 可以在生成设计的过程中直接产出位图素材(hero 背景、产品图、插画、logo)。支持 OpenAI 的 gpt-image-2 和 OpenRouter 上所有图像模型。默认关闭,在 Settings 里开启 by @yangjunx21 🎉
  • 🔐 ChatGPT Plus / Codex 订阅登录 — 一键 OAuth,不需要 API key。你现有的订阅直接变成模型额度
  • ⚙️ CLIProxyAPI 一键导入 — Open CoDesign 启动时会自动识别正在运行的 CLIProxyAPI,直接导入;手动添加时也有预设和智能 model 发现
  • 🛠 第三方中转错误提示更清晰 — 超时、SSE 截断、Messages API 不兼容这些问题,现在会直接告诉你是哪个环节坏了,不再是 undefined 或模糊的 500

修复

Provider 和中转兼容性(大波):

  • Gemini 第三方中转:带 models/ 前缀的 key 现在能正常识别(修复 #175,感谢 @CaioGS06 反馈)by @Sun-sunshine06
  • OpenAI Responses 不再报 "instructions are required"(修复 #134)by @Sun-sunshine06
  • 中转网关不支持 /v1/messages 时会给出清晰的协议不匹配提示(修复 #158)by @Sun-sunshine06
  • 第三方中转 SSE 遇到 response 事件名被提前截断的问题,现在会显示诊断提示(修复 #167#180)by @Sun-sunshine06
  • 不暴露 /models 的自定义 OpenAI 兼容端点现在也能测试连接(修复 #179
  • reasoning=true 只发给已知的 OpenAI 推理模型,不再被 Qwen / DeepSeek / 第三方误拒(修复 #183
  • 首轮 agent 生成在上游瞬时错误时会自动重试(修复 #125,感谢 @Sun-sunshine06 反馈)

桌面端细节:

  • 生成超时错误会保留具体原因,不再统一显示成 "Request was aborted"(修复 #169
  • Settings 当前 model 卡片在 model 不在 fetched 列表时不再显示错(修复 #136,感谢 @Sun-sunshine06 反馈)
  • ChatGPT OAuth 登录过程中可以中途取消(修复 #172)by @Sun-sunshine06
  • Add 菜单 tooltip 行为和文案恢复(修复 #156)by @1WorldCapture 🎉

Codex 稳定性:

  • Codex token-store 会 wrap JSON 解析错误并使用原子写(修复 #128,感谢 @Sun-sunshine06 反馈)
  • ChatGPT Codex 能正常接收截图附件了(修复 #157)by @Sun-sunshine06
  • Codex 导入默认隐藏 Ollama,避免幻影 provider 噪音(修复 #170)by @L4b0R 🎉

诊断系统:

  • 生成失败会接入 diagnose() 假设系统,给出针对性修复建议(修复 #130,感谢 @Sun-sunshine06 反馈)

发版管线:

  • macOS arm64 DMG 已带上正确的 native modules(修复 #176,感谢 @bytegh 反馈)
  • Coding plan 应用白名单在 provider 需要时会给出清晰警告

国际化:

  • 新增巴西葡萄牙语(pt-BR)界面 by @DavidgFernandes 🎉
  • CLIProxyAPI 的 i18n key 去重

安装

# Windows
winget install OpenCoworkAI.OpenCoDesign

# macOS
brew install --cask opencoworkai/tap/open-codesign

# 或直接下载
# https://github.com/OpenCoworkAI/open-codesign/releases/tag/v0.1.4

首次贡献者 🎉

欢迎!这是你的工作首次出现在 release 里:

特别感谢

感谢提供 bug 报告、复现步骤和 issue triage 的朋友们:

  • @CaioGS06 — Gemini 第三方中转 bug 报告(#175
  • @bytegh — macOS 本地数据库 / DMG 复现报告(#176
  • LINUX DO 社区 — 自 v0.1.0 首发以来持续的反馈与讨论
  • 微信群朋友们 — 首测 + UX 建议
  • Microsoft winget-pkgs 维护者 — 审核通过我们的 manifest,现在 winget install 开箱即用

Full changelog / 完整变更

Auto-generated from commits between v0.1.3 and v0.1.4:

  • feat: warn about coding plan app allowlists (#196)
  • fix: enable reasoning for third-party OpenAI-compatible proxies (#194)
  • feat: support gpt-image-2 for asset generation (#193)
  • fix: add cancel button to ChatGPT login when OAuth in progress (#172)
  • feat(settings): auto-detect running CLIProxyAPI and show import banner (#190)
  • feat(settings): CLIProxyAPI preset + smart model auto-discovery (#178)
  • fix(providers): only flag reasoning=true for known OpenAI reasoning models (#187)
  • fix(desktop): preserve generation timeout reason and raise dropdown ceiling (#169)
  • fix(providers): strip models/ prefix for Gemini OpenAI-compat endpoint (#186)
  • fix(desktop): degrade-probe test connection for OpenAI-compat endpoints without /models (#182)
  • fix(providers): detect gateway missing Messages API and surface actionable error (#161)
  • fix(providers): inject top-level instructions for openai-responses wire (#160)
  • feat(diagnostics): hint for 3rd-party relay SSE truncation (#181)
  • feat(diagnostics): bridge generate failures to diagnose() hypotheses (#165)
  • fix(core): retry first-turn agent generation on transient errors (#163)
  • fix(release): ship both macOS arm64 and x64 DMGs with correct native modules (#185)
  • fix(codex): wrap token-store JSON parse errors and use atomic write (#162)
  • fix(renderer): Settings active card no longer misrepresents model when not in fetched list (#166)
  • feat(i18n): add Brazilian Portuguese (pt-BR) locale (#171)
  • fix: send screenshot attachments to ChatGPT Codex (#157)
  • [codex] hide Ollama until manually added (#170)
  • fix(desktop): restore add-menu tooltip behavior and labels (#156)
  • feat(codex): unify ChatGPT subscription onto pi-ai's openai-codex-responses wire (#155)
  • fix: allow larger binary attachments (images/png) (#154)

v0.1.3

21 Apr 09:14

Choose a tag to compare

  • no changes

v0.1.2

21 Apr 06:19

Choose a tag to compare

  • no changes

v0.1.1

21 Apr 02:39

Choose a tag to compare

  • no changes

v0.1.0

20 Apr 17:44

Choose a tag to compare

Features

  • feat(desktop): simplify provider cards in Settings → API 服务 (re-open)
  • feat(scripts): pnpm smoke — batch model/prompt API tester
  • feat(prompts): align with Claude Design conventions (empty EDITMODE, 9-token palette, 2-font default, animation cap, Fraunces for marketing)
  • feat(core): progressive disclosure for system prompt by user-prompt keywords
  • feat(core): chart rendering contract
  • feat(core): switch skills to progressive-disclosure model routing
  • feat(core): permit cdnjs library whitelist in generated artifacts
  • feat(desktop): connection error diagnostic panel
  • feat(desktop): comment mode gating
  • feat(core): EDITMODE protocol — declarable tweakable params
  • feat(core): reasoning for all providers (auto fallback)
  • feat(core): dashboard ambient signals directive
  • feat(desktop): preview zoom dropdown
  • feat(core): extended thinking + bigger output budget
  • feat(core): inline iOS frame starter template
  • feat(core): Skills PR-B — wire loader into generation
  • feat(desktop): project (design) management — list / create / switch / rename / duplicate / delete
  • feat(core): system prompt — adopt Claude Design patterns
  • feat(desktop): viewport switcher (desktop / tablet / mobile with phone bezel)
  • feat(core): Skills system foundation — loader + 4 starter skills
  • feat(exporters): Markdown export of generated artifact
  • feat(desktop): Snapshots SQLite schema + IPC handlers (PR-A)
  • feat(core): Brand token extraction — Tailwind config + CSS vars + W3C DTCG
  • feat(core): system prompt v2 — denser, smarter, artifact-type aware
  • feat(ui): disabled button tooltip audit
  • feat(desktop): full-page Settings + fix API switching pipeline
  • feat(ui): Anthropic-inspired warm aesthetic + starter cards + BYOK badge
  • feat(core): provider-aware errors + named-step logging in generate
  • feat(desktop): named loading stages (sending/thinking/streaming/parsing/rendering)
  • feat(exporters): PDF export (lazy puppeteer-core + system Chrome)
  • feat(desktop): TopBar connection status badge
  • feat(desktop): proxy presets + connection test + real model list
  • feat(core): structured system prompt v1 (composer + 8 sections)
  • feat(desktop): implement settings tabs with multi-provider management
  • feat(desktop): redesign sidebar input + add cancellation IPC
  • feat(desktop): surface language toggle
  • feat(desktop): add input context and inline comments
  • feat(reliability): error boundaries + cancellation + retry + iframe error reporting
  • feat(desktop): settings + theme + command palette + better preview states
  • feat: i18n infrastructure + en/zh-CN translations + per-locale demos
  • feat(exporters): real PDF/PPTX/ZIP via system Chrome + pptxgenjs + zip-lib (lazy-loaded)
  • feat(core,exporters,desktop): end-to-end first demo + HTML export
  • feat: marketing website (VitePress + Tailwind v4 + en/zh + llms.txt + GH Pages deploy)
  • feat(desktop): first-run onboarding wizard with safeStorage

Bug Fixes

  • fix(desktop): harden sqlite bindings install flow
  • fix(artifacts): close remaining streaming parser leak paths
  • fix(desktop): wire generationTimeoutSec preference to in-flight aborts
  • fix(desktop): onboarding polish per audit 27
  • fix(desktop): preview perf + token counter wiring
  • fix(desktop): preserve artifact dark theme in iframe
  • fix(desktop): validate locale:set input against supported locales
  • fix(providers): Chinese keywords for skill matcher
  • fix(desktop): load designs on app startup so persisted work reappears
  • fix(desktop): dual-ABI prebuilt for better-sqlite3 (Node + Electron)
  • fix(artifacts): hold back partial open tag mid-attribute
  • fix(desktop): persist generated artifacts so designs reload correctly
  • fix(desktop): add 10s timeout to connection-ipc fetches
  • fix(providers): treat empty Retry-After header as no hint
  • fix(exporters): prevent zip-slip via asset path traversal
  • fix(exporters): quote YAML frontmatter titles starting with reserved indicators
  • fix(skills): mobile-mock no double phone chrome
  • fix(ui): PhoneFrame v2 visual polish
  • fix(ui): PhoneFrame sizing + iframe containment
  • fix(desktop): i18n ErrorBoundary fallback strings
  • fix(desktop): honor XDG_CONFIG_HOME in locale-ipc and preferences-ipc
  • fix(runtime): replace silent catches in overlay with console.warn
  • fix(desktop): tokenize raw utilities in preview Loading/Error states
  • fix(desktop): i18n ThemeToggle aria/tooltip strings
  • fix(desktop): PreviewPane hint pill + iframe dark-mode tokens
  • fix(desktop): drop unused fileURLToPath import in main entry
  • fix(desktop): tokenize PreviewToolbar values missed by #57
  • fix(desktop): tokenize LanguageToggle hardcoded sizes/spacing
  • fix(desktop): tokenize ConnectionStatusDot tooltip values
  • fix(desktop): localize Toast dismiss aria-label
  • fix(desktop): replace hardcoded text-[Npx] with --text-* tokens (preview + inline-comment)
  • fix(desktop): active provider sync — UI badge and generate IPC now share single source of truth
  • fix(desktop): toast polish — auto-dismiss, countdown bar, a11y
  • fix(desktop): bundle Plus Jakarta + JetBrains Mono locally (no Google Fonts CDN)
  • fix(desktop): Settings UI polish — compact provider cards, accent stripe, dashed add-card
  • fix(desktop): onboarding i18n audit + locale-reactive switching
  • fix(desktop): language switching + window drag hardening
  • fix(desktop): dedupe error UI + wire iframe error listener
  • fix(core): recover html from fenced revision replies
  • fix(providers): adapt assistant history for pi-ai

Documentation

  • docs: launch-ready marketing — README, website, SEO, AI-SEO, og:image
  • docs: rebrand to Open CoDesign + Anthropic-style README & website

Other Changes

  • refactor(desktop): unify API config IPC + drop separate fast model slot
  • perf(prompts): shrink Layer 1 to lower 8k-ctx token cost
  • chore(deps): bump 3 low-risk major deps (lucide-react / electron-builder / pptxgenjs)
  • chore(deps): bump happy-dom to fix 6 security advisories
  • refactor(desktop): unify validate+test into single ConnectionCheck
  • ci: narrow CI matrix to ubuntu (cost reduction)
  • ci(release): GitHub Releases for v0.1 (unsigned)

Full Changelog: 9e9e5a6...v0.1.0