Repository navigation
Releases: oopjoy/Pi-Chat
Release list
Pi Chat v0.5.4
Pi Chat v0.5.4
稳定性与安全维护版
本版收尾模型配置、附件和长会话启动的可靠性问题,不增加第二套 Agent
Runtime,不改变 Windows-first、local-first 定位。
下载哪个文件?
| 文件 | 用途 |
|---|---|
pi-chat-setup.exe |
Windows x64 推荐安装入口;内置应用、Node 24.22.0 LTS 与 Pi 1.3.0 后备快照 |
pi-chat-portable-0.5.4.zip |
应用便携包;自备 Node 22.19+ 与 Pi,不含 Node 或 Pi |
GitHub 的 Source code 归档不是运行包。校验记录与构建清单在 CI 内验证和
留存,不作为额外安装附件。两个发布文件绑定同一 v0.5.4 提交;v0.5.3 的
标签和资产保持不变。
模型配置与上游列表
- 获取上游模型列表后,显式勾选导入;应用到编辑列表不会立即写入配置。
- 带凭据的探测请求不再自动跟随重定向,避免 Anthropic/Google 自定义认证头
被转发到另一个地址。遇到重定向会提示填写最终 API 地址。 - 取消、重新打开、切换 Provider 或修改连接参数后,旧探测的结果、错误与
完成回调不能覆盖新请求。 - 新对话使用输入框当前显示的模型。模型配置同步遇到失败、延迟或未确认写入
时保持 pending,不再提前报告刷新成功或覆盖较新的用户选择。 - 自定义推理模型的 Thinking 选项保持七档语义;配置刷新保留 Session 的
Thinking 选择,正在运行的请求继续使用自己的已捕获配置。
草稿与附件边界
- 连续发送失败时保留每份被挤出的输入及附件,可以逐份取回,不会自动发送。
- 文件拖放只使用拖入文件自己的字节;目录需要事件携带明确路径或由用户显式
选择,不再猜测其他 Explorer 窗口中的同名目录。 - 托管附件在发送前完成保留确认;服务端独立验证,不依赖浏览器预检。
已发送或可能已发送的文件不会因删除卡片或普通过期清理而丢失。 - 页面中的附件引用定期续租;失败后可在编辑、网络恢复或下一次心跳重试,
不产生无限失败重试循环。 - 撤回实验性的跨刷新草稿恢复和存储管理面板。未发送文字、图片和卡片仅保留
在当前页面内存;浏览器离开确认只是尽力提示,不是崩溃或刷新备份。 - 已有实验性浏览器备份不会自动恢复或删除。README 的“草稿与附件保留边界”
说明了检查、保存和显式清理方式;普通用户原文件不受附件清理器管理。
启动与对话体验
- 启动兼容性检查不再通过
get_messages请求完整 Session,避免长会话的
超大 RPC 响应终止子进程或被误报为协议不兼容。历史仍使用有界 JSONL 读取。 - 对话过程计时在上游重试期间暂停;修复重复过程说明和首轮历史折叠。
- 顶栏 Session 操作菜单支持复制会话深链与 Session 源文件路径。
- 保留多窗口共享提交、单 Runtime writer、断线恢复与安全重启边界。
安装与升级
Setup 安装主体不需要网络、Git 或预装 Node。优先使用本机合适的 Node,
没有时使用内置 Runtime;已有 Pi 直接复用、不自动升级,没有 Pi 时离线
展开后备快照。模型认证仍需用户配置。
升级前请在设置中明确关闭正在运行的 Pi Chat 服务。 仅关闭网页不会停止
服务。安装器会拒绝覆盖运行中的目标,不会强杀其他 checkout 或 Pi 任务。
卸载保留 Pi 的会话、凭据和 Skills。便携包解压后,Windows 使用附带启动脚本;
其他系统在具备 Node/Pi 后运行 node server/server/index.js,但不承诺非 Windows
的官方支持或原生文件选择等功能。
安装包未进行代码签名,Windows SmartScreen 可能提示未知发布者。请只从本项目
Release 下载,不需要也不建议关闭系统安全软件。
验证与已知限制
发布工作流在类型、Lint、writer/type-debt、完整 source/benchmark、Playwright、
artifact 和隔离原生安装/升级/卸载验证之后构建并发布。最终候选产物的构建或
artifact 检查失败会立即停止,不能继续上传。
本地收尾验收记录见 docs/closeout-acceptance-2026-10-25.md。Windows 下因权限
不足而跳过的文件 symlink 测试、POSIX 专属项和已停用的旧 Sidebar 刷新测试
不计为通过;GitHub 实际运行结果以本次 tag 的 Release CI 为准。Source Checks 会拉取完整 git
历史;Session JSONL 引用测试先规范化 Windows 临时路径,避免 runner 的 8.3 TMP
名称把合法 Session 变成 500。
- 历史约 65 秒的真实扩展配置冷启动问题尚未关闭;隔离 core profile 的
小样本耗时不能证明真实冷缓存或实际模型首 token 已改善。 - 干净用户下的可见安装向导、SmartScreen 和真实 Provider/扩展组合仍需人工
使用验证;静默自动化安装验证不能代替这些检查。 - 不提供远程多用户部署、移动端产品承诺或 Electron Runtime。
Pi Chat v0.5.3
Pi Chat v0.5.3
First self-contained Windows Setup, plus a portable archive
v0.5.3 is the first stable release of the complete Windows installer. v0.5.2 on GitHub was still the ~192 KB online bootstrapper; this tag ships a real Setup and restores a portable ZIP for machines that already have Node and Pi.
Release assets:
pi-chat-setup.exe
pi-chat-portable-0.5.3.zip
GitHub also attaches the two source archives. Checksum and manifest sidecars are generated and verified in CI but are not uploaded.
Pi remains the sole authority for Runtime execution, Sessions, JSONL, Prompt delivery, retry, Steer, tools, models, and transcript state. The Web core remains the only product surface.
Composer attachments
Drag, paste, or pick local files and folders into the Composer. They appear as cards and are sent to Pi as paths, so Pi reads them on demand instead of uploading contents.
- Files are staged from their own bytes, so a same-named file selected in another Explorer window can never be substituted. Folders keep their real path, and a folder card opens in Explorer.
- A drag that carries no local file now says so instead of being silently swallowed. Removing a card deletes its staged temp file.
- Send waits for in-flight staging, so a dropped file cannot land on the next empty draft. Abandoned or rejected temp files are cleaned up.
- Images keep a thumbnail and open a full preview with Escape, a focus trap, and focus returned to the thumbnail. Non-image files show their real type (PDF, TEX, LOG, ...).
Model configuration
Editing models.json no longer restarts Pi.
- A save is versioned by the file's content hash, so a Base URL, API key, or maxTokens change is no longer treated as "nothing changed" when the model list looks identical.
- Each idle worker reloads its own catalogue in place through Pi's public registry refresh. A worker with a request in flight is left alone and refreshed once it settles, and only a Pi without that capability falls back to an idle Runtime reload. Editing models is therefore possible while another Session is generating.
- A Session keeps the model object it selected, so the refreshed limits are applied by re-selecting the same provider/id, which also restores that Session's thinking level.
- Saved, refreshed, and "the current request keeps its original route" are reported separately. A drop or failure that still owes work stays pending and retries on a bounded backoff instead of claiming a clean refresh.
Restart and Quit
Restart and Quit are on the Sidebar and in Settings. Restart is yellow and Quit is red; a disabled button explains on hover why it cannot run. Closing a window does not stop the background service.
Windows Setup
pi-chat-setup.exe is a single-file Inno Setup installer (no Electron):
- Embeds the compiled app, a checksum-pinned Node.js 24.22.0 LTS runtime (with npm), and a pinned Pi 1.3.0 snapshot. The install itself does not need Git, a system Node, or a network connection.
- Launch prefers a system Node 22.19 or newer when present; if Node is missing or older, it uses the bundled 24.22.0 runtime and says so.
- Defaults to
%LOCALAPPDATA%\PiChat; the destination can be changed. Primary shortcuts open Web in the system default browser. A trackedPi Chat Web.lnklives in the install root;Pi Chat PWAremains an optional Start-menu entry. - Reuses an existing local Pi and never upgrades it in place. If none is found, Setup copies the bundled 1.3.0 snapshot offline into
~/.pi/agent/install. Copy failure still leaves the app installed so a later connection can recover. - Registers uninstall (Settings → Apps → Pi Chat). Uninstall removes the app, private Node, and this install's own config; it does not delete
~/.pi/agentsessions, credentials, or Skills. - Refuses upgrade or uninstall of a running destination instead of failing mid-copy. Source-checkout shortcuts stay in a separate
Pi Chat Gitgroup and are never claimed by Setup. Desktop keeps onlyPi Chat Web; an upgrade removes a leftover desktopPi Chat.lnkonly when it is this install's own PowerShell Web launcher, never a PWA, another checkout, or a hand-made shortcut. - Native file and folder pickers open above the browser window instead of behind it.
Portable ZIP
pi-chat-portable-0.5.3.zip is the app payload only (Web, compiled server, runtime adapters, Windows launcher scripts, and docs). It does not include Node or Pi.
- Windows: extract and run
start-pi-chat-ui.ps1orpi-chat-launch.cmd. - Linux/macOS: with Node 22.19+ and Pi already installed, run
node server/server/index.jsfrom the extracted folder.
The ZIP uses forward-slash entry names so it extracts cleanly outside Windows. File picker, Explorer reveal, and Setup-managed Pi stay Windows-only. Pi Chat remains Windows-first; the portable archive does not make non-Windows a supported product channel.
Assistant Markdown: local files and images
Saved assistant replies may link to, and render, explicit local paths:
- Workspace-relative and, when the destination is written into the persisted reply, paths outside the Session workspace.
- Links open through the Session-addressed opener; allowlisted image types render inline through an authenticated endpoint (
<img>cannot send the app token, so the UI fetches a blob URL). - Authority is exact destinations in the saved Markdown only: a link never grants render rights, and an image never grants open rights. Traversal, ADS, UNC/network paths, symlinks, sensitive names, and executable types stay blocked. The Files inspector remains workspace-contained.
Process activity and visual language
- Tools map to semantic families (terminal, message, mutation, document, search, agent, network, image) with one stable icon per family and a wrench fallback. Thinking rows use an amber bulb; completed checks are status-green, errors are danger-red, and the running spinner keeps accent. Presentation never feeds Gate, approval, or security.
- Second token-convergence pass across settings, management, about, welcome, queue/steer, attachment, and subagent surfaces. Composer, Sessions, and Conversation remain the product IA.
Reliability
- Runtime capacity rejection now states occupancy (n/N hot conversations, how many are busy) and that Session history stays readable.
- Large-history outlines keep naming-entry IDs and parent links; older pages stay bounded; idle hot views no longer attempt an oversized full snapshot first.
- Image prompts reconcile against Pi's post-preflight user message so the pending bubble retires only after a matching persisted JSONL row.
- Windows path separators and command backslashes survive in tool summaries; long paths keep the filename.
License
This repository is MIT-licensed (LICENSE, copyright 2026, oopjoy and Pi Chat contributors). Releases through v0.5.2 carried no open-source license.
Verification
Windows Release CI on tag v0.5.3 built and verified the Setup (including isolated install/upgrade/uninstall) and the portable ZIP from this tagged revision. Main-branch CI also publishes a commit-addressed Setup artifact for testing; those artifacts do not create or move tags.
This revision keeps the v0.5.3 tag and replaces its release assets, so no new version tag was created.
Known boundaries
- Windows-first. Portable ZIP on Linux/macOS is a deployment convenience, not a support commitment.
- Process-area grouping of consecutive same-family tools (Phase 3) and weakening historical green ticks (Phase 2) are deferred until long runs are observed on this build.
- A folder dragged from Explorer depends on Windows reporting its path or on the item still being selected there; otherwise Pi Chat asks for the picker instead of guessing.
- The 65-second cold Session start is not closed; isolated import/factory measurements are much smaller and do not prove the incident is gone. See
docs/runtime-startup-investigation-2026-10-14.md.
Pi Chat 0.5.2 - Complete Setup test build
Pi Chat Complete Setup — 测试预发布
这是供另一台 Windows 电脑验证安装体验的 Pre-release,不是新的正式版本。
应用版本仍为 0.5.2;确切提交、构建指纹和 Node 版本见旁边的 manifest。
正式 v0.5.2 的标签、旧资产和 Latest 状态保持不变。
下载哪一个
下载 pi-chat-setup.exe(约 27 MB)即可。 这是 Inno Setup 完整安装包:
- 内置 Pi Chat 本体、私有 Node/npm,安装主体不再下载 App 或 Node;
- 优先复用本机 Pi,不擅自升级、复制配置或凭证;
- 没有 Pi 时,完成页提供明确的可选联网安装。跳过或失败不撤销主体安装;
- 原生向导、开始菜单入口、可选桌面快捷方式、Windows 卸载;
- 不提供第二个 Web EXE 或 portable 包。GitHub 自动生成的 Source code 不是安装包。
请验证
- 先核对 EXE 的 SHA256 与
.sha256文件,然后双击,确认向导与进度可见。 - 主体安装不需要系统 Node 或网络;可选 Pi 安装及模型服务调用仍可能需要网络和认证。
- 打开后检查“关于”的 Build Revision;已有 Pi 的配置、Skills 和会话应继续由原来的 Pi 管理。
- 关闭、从快捷方式再次打开;在“设置 → 应用”卸载时保留 Pi 用户数据。
- 正在运行的目标安装应拒绝覆盖或卸载;另一个 checkout 的服务不会被强杀或接管。
安装器目前 未签名,可能触发 SmartScreen。不要关闭系统安全防护来完成测试;请记录提示与失败阶段。
安装日志可用 /LOG="D:\PiChat-setup.log" 指定,Pi 可选安装日志位于 %TEMP%\pi-chat-pi-install.log。
分享日志前请去除凭证和个人信息。
该测试包也包含 main 分支上的带图消息关联、超大历史分页和桌面反馈修复;
它们没有回填至旧 v0.5.2 的在线安装器。
Pi Chat v0.5.2
Pi Chat v0.5.2
Productization release: one-file Setup, self-contained runtime, in-place Pi updates
Pi Chat v0.5.2 turns the previous developer-style install into a normal Windows application flow while keeping every authority boundary: Pi remains the sole authority for Runtime execution, Sessions, JSONL, Prompt delivery, retry, Steer, tools, models, and transcript state, and the Web core remains the only product surface.
Pi Chat Setup
PiChatSetup.exe is a single-file Windows installer (no Electron):
- Installs the compiled app into
%LOCALAPPDATA%\PiChat\app. - Downloads and SHA256-verifies a private Node.js 22 runtime into
runtime\node— the user never needs a system Node, and nvm/PATH skew cannot affect the service. - Detects an existing local Pi and uses it by default; when no Pi exists it installs a PiChat-managed Pi Runtime into Pi's own native
~/.pi/agent/installlayout, sharing sessions, settings, skills, and credentials with the user's Pi CLI without duplication. - Creates desktop and Start-menu shortcuts (PWA and Web views) and opens Pi Chat on completion.
- Registers a Windows uninstaller (Settings → Apps → Pi Chat → Uninstall) that removes the install root and shortcuts while deliberately preserving
~/.pi/agentuser state. - Falls back to the npmmirror mirror for Node.js and npm registry downloads so installs work on networks where nodejs.org or registry.npmjs.org are unreachable; checksum verification is unchanged.
- Refuses to install or upgrade while Pi Chat is running instead of failing on file locks mid-upgrade.
In-place Pi Runtime updates
The About panel can now upgrade Pi directly instead of linking to npm:
- Update checks remain explicit, read-only, and guarded by the local API authority.
- Managed installs install the pinned version into
releases/<version>, then atomically switch thecurrent-versionpointer after the full lifecycle quiescence barrier. - npm-global installs run an explicit
npm install -g @earendil-works/pi-coding-agent@<version>after confirmation, keeping the user's Pi CLI and the Pi Chat engine in lockstep (the shared~/.pi/agentstate can never skew between versions); a failed upgrade rolls back to the previous version. - Custom Pi entries are never modified; the UI only offers upgrade paths that apply to the detected install source.
Fixes
- Optimistic user prompts reconcile after Runtime settlement instead of lingering after the persisted echo becomes visible.
- Oversized Session JSONL files stay readable with a bounded recent-turn window across cold, bootstrap, hot-recovery, workspace, and read-only paths.
- npm-cli discovery covers npm bundled inside the Node.js installation directory (the common Windows layout).
- The Setup console wrapper forces a UTF-8 codepage so install messages render correctly on non-Chinese systems.
Pi Chat v0.5.1
Pi Chat v0.5.1
Reliability and deployment maintenance release
Pi Chat v0.5.1 integrates the reviewed Runtime, projection, rendering, and deployment maintenance work while preserving Pi as the sole authority for Runtime execution, Sessions, JSONL, Prompt delivery, retry, Steer, tools, models, and transcript state.
The runnable Windows package is:
pi-chat-windows-0.5.1.zip
The ZIP, portable SHA-256 record, manifest, and embedded build identity are produced from the same tagged source revision by Windows Release CI.
Included
- Contained background Runtime maintenance, serialized shared SessionProjection reads, and safe SSE error/close handling.
- Isolated historical browser rendering and added writer/Promise boundary contracts without changing Runtime or Session authority.
- Replaced whole-App Copy, Model, and Thinking recovery proxies with explicit capability ports and compile-time contract tests.
- Preserved pending local turns after confirmed transcript history so queued work cannot split an earlier tool process or final answer.
- Added exact paired LaTeX inline and display delimiter handling in the rendering copy, while source copy continues to return the original Markdown/LaTeX.
- Added guarded Pi package discovery, package identity validation, per-checkout runtime-entry preferences, and explicit connection setup.
- Added lifecycle-safe service-only restart for changing the selected Pi entry; it does not install packages, download software, or store model credentials.
- Kept Direct Pi RPC, process-local dequeue adaptation, startup diagnostics, Gate enforcement, confirmed writer exit, and cold JSONL browsing boundaries intact.
- Workspace Files revalidates transcript-derived paths against the current Workspace and hides stale paths from moved or deleted checkouts.
Verification
The integrated source was checked in an isolated worktree with:
preflight: passed
source and benchmark unit verification: passed; the timing-sensitive shutdown boundary was also repeated in ten focused runs
Playwright: 33 passed
artifact lane: 42 passed, 1 environment skip
The release package is built in a separate staging directory from the tagged source revision. GitHub-generated source archives remain source-only; use the Windows ZIP for the runnable application.
Known boundaries
- Pi Chat remains loopback-only, local-first, and Windows-first.
- A supported Node.js 22.19 or newer installation and a compatible authenticated Pi installation are required.
- Runtime connection setup validates local package metadata but does not install Pi or manage model credentials.
- Do not restart a live installation while Sessions, queues, confirmations, or Runtime operations are active.
Installation
- Install Node.js 22.19 or newer.
- Install and authenticate a compatible Pi installation.
- Download
pi-chat-windows-0.5.1.zipand its.sha256sidecar. - Verify the checksum, extract the ZIP, and run
start-pi-chat.cmdorstart-pi-chat-ui.ps1. - Open the loopback listener shown by the launcher, normally
http://127.0.0.1:30170.
Pi Chat v0.5.0
Pi Chat v0.5.0
Reliability and maintainability release
Pi Chat v0.5.0 is the post-0.4.8 reliability release. Pi remains the sole authority for Runtime execution, Sessions, JSONL, Prompt delivery, retry, Steer, tools, models, and transcript state.
The runnable Windows package is:
pi-chat-windows-0.5.0.zip
The ZIP, portable SHA-256 record, manifest, and embedded build identity are produced from the same tagged source revision.
Included
- Web application and server decomposition completed without changing Runtime, Session, FIFO, generation-fencing, lease, or response-before-release authority rules.
- Pi SSE handling split into message/streaming, Runtime lifecycle, workspace/session, queue/extension, and failure/control domains while keeping admission and fencing in the central handler.
- Prompt sending split into preparation, Runtime/Draft warm-up, acknowledgement reconciliation, and failure/uncertain-delivery handling.
- New-draft first-send Prompt identity is bound before retry lifecycle frames can race the browser acknowledgement.
- Prompt acknowledgement, Queue projection, native Steer, stale-pane, and uncertain-delivery paths retain explicit reconciliation boundaries.
- Nested Prompt route host Proxy usage was removed while preserving the active Primary
runningwrite-through behavior. - Several residual
anyaliases were replaced with the actual authority and projection types. - App and server decomposition targets remain within their maintained size ranges without introducing a product rename.
Verification
The release source passed:
npm run typecheck
npm run test:preflight
npm run test:source
npm run check:committed-text
The release package is source-authority aligned with the tagged revision and includes the generated build identity, Windows launcher assets, Pi Runtime resources, and portable checksum sidecar.
Known boundaries
- Pi Chat remains loopback-only, local-first, and Windows-first.
- The source archive is source-only. Use the Windows ZIP for the runnable packaged application.
- A supported Node.js 22.19 or newer installation and a compatible authenticated Pi installation are required.
- Do not restart a live installation while Sessions, queues, confirmations, or Runtime operations are active.
Installation
- Install Node.js 22.19 or newer.
- Install and authenticate Pi 1.0.1 or a compatible Pi with the required RPC surface.
- Download
pi-chat-windows-0.5.0.zipand its.sha256sidecar. - Verify the checksum, extract the ZIP, and run
start-pi-chat.cmdorstart-pi-chat-ui.ps1. - Open the loopback listener shown by the launcher, normally
http://127.0.0.1:30170.
Pi Chat v0.4.8
Pi Chat v0.4.8
Windows-first maintenance release
Pi Chat v0.4.8 is the formal maintenance checkpoint after the 0.4.7 stability
preview. It preserves Pi as the sole Runtime, Session/JSONL, Prompt, retry,
Steer, tool, model, and transcript authority while closing the browser and
server continuation races found during the 0.4.x convergence audit.
This is not a 1.0 or remote multi-user release. Pi Chat remains loopback-only,
local-first, and Windows-first.
The runnable Windows package is:
pi-chat-windows-0.4.8.zip
The ZIP, portable SHA-256 record, and manifest are generated from the same
v0.4.8 source revision. The GitHub release records the exact checksum from the
verified release artifact.
Included
- One browser owner for Session-view cache writes, overlays, deletion fencing,
and replacement invalidation. RuntimeProjectionWriteras the sole browser write/freshness boundary for
Primary readiness, confirmed capability evidence, and application lifecycle.ActiveSessionProjectionWriterfencing held Bootstrap, stale HTTP views,
cached hot views, deletion, equal-set SSE observations, and process
replacement.- Runtime operation admission for Primary and Secondary hot Session reads,
including revalidation across RPC, disk, statistics, and Fork-origin awaits.
Detached reads fall back to JSONL-only state rather than reviving writable
Runtime authority. ModelCatalogueRevisionGateordering Bootstrap, model-management responses,
and catalogue SSE facts across same-revision refinements and process
replacement.- Server-owned Prompt identity, shared-write FIFO, retry projection, uncertain
delivery, Session replacement/deletion, and navigation fencing retained from
the 0.4.7 stability work. - One generated source/benchmark/artifact lane manifest. Single-process and
batched source tests no longer maintain divergent exclusion lists;
bounded-tail-benchmark.test.tsbelongs only to the benchmark lane. - Proactive architecture work is frozen. Future structural changes require a
reproduced defect, release/security need, or repeatable measurement evidence.
Verification
The release candidate passed on Windows using isolated staging paths and
fixtures:
typecheck passed
source, single process 1,247 passed; 2 environment skips
source, 20 fresh-process batches all 162 files passed
benchmark 33 of 33
preflight 86 of 86
Runtime/reconnect/reload/reclaim/shutdown 63 of 63
Playwright, isolated staged build 25 of 25
artifact/startup smoke, isolated staged build 41 passed; 1 environment skip
A three-iteration Chromium checkpoint was retained as descriptive evidence only:
cold-first-pane p50 44.50 ms
hot-switch p50 30.70 ms
load-earlier p50 37.40 ms
anchor error p50 0.00 px
No noisy performance CI thresholds were added. No live Pi Chat listener,
repository/live dist, provider, Prompt, or personal Session root was used by
this checkpoint.
Known boundaries
- Real-provider failure, throttling, timeout, and native retry still require
dedicated provider-level field validation. - No remote access mode is provided.
- No open-source license has been selected; this release does not grant an
MIT, Apache-2.0, or other open-source redistribution license. - The source archive is source-only. Use the Windows ZIP for the runnable
packaged application.
Installation
- Install Node.js 22.19 or newer.
- Install and authenticate Pi 0.85.1 or a compatible Pi with the required RPC
surface. - Download
pi-chat-windows-0.4.8.zipand its checksum sidecar. - Verify the checksum, extract the ZIP, and run
start-pi-chat.cmdor
start-pi-chat-ui.ps1. - Open the loopback listener shown by the launcher, normally
http://127.0.0.1:30170.
See README.md, SECURITY.md, and
docs/architecture.md for operating and security
boundaries.
Verified Windows artifact
Release CI: https://github.com/oopjoy/Pi-Chat/actions/runs/35221860669
SHA-256 91ac423ccd80a2bbcffcac830ed9b9ec665fef912e201ae72c9bb88901348f2d pi-chat-windows-0.4.8.zip
Verify with the attached portable .sha256 sidecar. The attached manifest binds version, tag, source revision, fingerprint, ZIP size, and checksum.
Pi Chat v0.4.7 — Stability Preview (unfinished)
Pi Chat v0.4.7
Windows-first stability preview
Pi Chat v0.4.7 is a Windows-first, local-first stability release. It is intentionally published as a 半成品 / stability preview, not as a 1.0 release, not as a finished adoption release, and not as a promise that every platform or Runtime edge case is complete.
The runnable Windows package is:
pi-chat-windows-0.4.7.zip
The ZIP, portable SHA-256 file, and manifest are generated from the same tagged source revision. The manifest records the package version, exact revision, build fingerprint, ZIP size, and checksum.
Included in v0.4.7
- Bootstrap Composer protection: the initial Composer stays read-only until the authoritative Session identity is committed, preventing input from being written into a provisional
session:nonepartition. - Server-owned Prompt identity propagation across HTTP admission, SSE, Browser PromptOperation, optimistic LocalUserTurn, queueing, reconnect, retry metadata, and terminal settlement.
- Duplicate Prompt protection that preserves two genuinely identical Prompts as two separate turns.
- Session-scoped shared-write FIFO coverage for ordinary Prompts submitted from multiple browser windows.
- Runtime generation, Session replacement, deletion, navigation, A → B → A, SSE reconnect, and retry terminal fencing.
- Isolated Playwright coverage for startup readiness, duplicate Prompts, reconnect, retry success/exhaustion, long Sessions, Session navigation, Files/Changes inspection, and responsive desktop/mobile behavior.
- Windows release hygiene: branch/tag CI separation, pinned GitHub Actions, staged artifact packaging, manifest/checksum verification, and
SECURITY.mdincluded in the package. - Files/Changes sidebar splitter pointer capture so Windows Chromium drags continue after the pointer leaves the narrow grip.
- Ask User questionnaire preview stabilization: preview content uses a fixed layout slot and remains inside the same hover region as its options, so moving toward the preview no longer causes the dialog to jump or flicker.
Current boundaries and unfinished work
This release is deliberately not presented as complete. The following work remains open for later adjustments:
- Real provider failure, 429, timeout, native retry, retry SSE metadata, and Browser projection are not validated against the live Pi Chat listener. A dedicated isolated mock-provider or temporary Pi Chat instance is still required.
- Live Pi Chat restart, deployment, live Prompt smoke, live queued Prompt smoke, and live provider retry were not performed for this release.
- Windows browser-agent tooling has been improved separately, but the broader Windows launcher, browser profile, proxy, port, and independent-window workflow still needs further field validation.
- More complete identity matrices remain useful for queued Prompts, Secondary Prompts, uncertain delivery, retry-before-HTTP, abort during retry, Session replacement/deletion, and navigation fencing.
- Large Session resource baselines at 128 MiB, 256 MiB, and 512 MiB still need representative peak RSS, latency, index refresh, and concurrent-access measurements.
- Pi Chat remains loopback-only and local-first. It is not a remote multi-user service and does not provide a remote access switch.
- Pi remains the only agent loop, Runtime, Session/JSONL, model, tool, Skill, Extension, retry, Steer, and transcript authority. Pi Chat does not add a second Runtime or transcript system.
- No open-source license has been selected for this repository. This release does not grant MIT, Apache-2.0, or another open-source redistribution license.
Verification
The release candidate was checked in isolated staging paths rather than the live repository dist/:
npm run typecheck
npm run verify:unit
npm run verify:e2e
npm run verify:artifact
npm run check:committed-text
The Windows CI tag workflow must complete successfully before this release is considered verified. The .sha256 sidecar is the canonical checksum record for the attached ZIP; the .manifest.json sidecar is the canonical identity record.
Installation scope
- Install Node.js 22.19+.
- Install and authenticate Pi 0.85.1 or a compatible Pi with the required RPC surface.
- Download and extract the Windows ZIP.
- Run
start-pi-chat.cmdorstart-pi-chat-ui.ps1. - Open the loopback listener shown by the launcher, normally
http://127.0.0.1:30170.
For known limitations and security boundaries, see README.md and SECURITY.md.
Pi Chat v0.4.6
Pi Chat v0.4.6
This release publishes the verified Pi Chat 0.4.6 release candidate from source revision bdcf5d390c3fd93f01297ed48e0e06efe4757efa.
Highlights
- PromptCoordinator admission and Server-owned Prompt identity remain coherent across HTTP acknowledgement, SSE lifecycle, reload, and Session navigation.
- Optimistic User turns reconcile one-to-one with persisted Session rows, while genuinely identical Prompts remain separate turns.
- Retry lifecycle projection is identity-bound and fenced by Session, Runtime generation, and terminal authority.
- SSE event admission and Session navigation authority are isolated behind explicit browser application boundaries.
- Large Session reads retain bounded recent-tail behavior and complete aggregate counts.
- Runtime, queue, reconnect, failure, model catalogue, mobile, forced-colors, and Windows startup regressions remain covered by source and browser tests.
Verification
- TypeScript checks passed.
- Source regression: 1,169 tests, 1,167 passed, 0 failed, 2 environment-limited skips.
- Benchmark suite: 28 passed, 0 failed.
- Staged artifact verification: 42 tests, 41 passed, 0 failed, 1 environment-limited skip locally.
- Staged Playwright E2E: 24 passed, 0 failed.
- Initial Session bootstrap and E2E Composer readiness are explicitly synchronized to avoid provisional-draft timing races on slower Windows runners.
- The Windows package was built from an isolated release staging directory, not live
dist.
Integrity
- Revision:
bdcf5d390c3fd93f01297ed48e0e06efe4757efa - Build fingerprint:
d8b19fec38cd61df412d39b67871b2907fe828df82109cbadcb8f55f16cc8e01 - Windows ZIP:
pi-chat-windows-0.4.6.zip - ZIP size:
4855921bytes - SHA-256:
0c078aa9bd4b0e304457102a534dc672503d137b449166a85cbff3d8981f1989
Package scope
pi-chat-windows-0.4.6.zip is the runnable Windows package. GitHub-generated source archives are source-only development inputs. Pi Chat remains loopback-only and local-first; this release does not add remote hosting or a replacement Pi agent loop.
Pi Chat v0.4.5
Pi Chat v0.4.5
Streaming and long-session performance
- Streams cumulative assistant output through authoritative checkpoints and append-only deltas with stable projected message identities, sequence-gap recovery, progressive Markdown/GFM/KaTeX rendering, and a canonical terminal pass.
- Incrementally projects large Session JSONL files from verified committed offsets, with append-only suffix parsing, bounded negative inventory caching, rewrite fallback, and active-branch semantics.
- Reconciles provider terminal/live projections without globally deduplicating independent assistant turns.
Session management and reliability
- Restores cold or reclaimed Sessions before compaction and clears stale tool state after compaction completes.
- Clone and Fork now create independent cold Sessions through the source Session's single RPC writer and require an explanatory confirmation step.
- Fork previews the exact history boundary, restores the selected User message as an editable unsent draft, and stores source provenance atomically in a Pi Chat sidecar rather than either Pi JSONL.
- Forked conversations provide a cold navigation link back to their source and fail closed when the source no longer exists.
- Committed copy outcomes retain duplicate-operation guards when source recovery or Session Index confirmation is incomplete.
Workspace and Composer interface
- Adds the
Files / ChangesWorkspace Inspector. Files lists the current Session's most recent successful Edit/Write targets with bounded fail-closed previews; Changes retains the unified Edit projection. - Adds pointer and keyboard resizing between the recent-file list and preview, plus horizontal scrolling for long code lines.
- Simplifies the Composer model selector while keeping model names primary and model IDs available on hover.
Verification
- TypeScript checks passed on the release commit.
- Isolated unit validation: 960 passed, 4 platform-skipped.
- Isolated Playwright validation: 19 passed.
- Packaged startup smoke passed against the exact staged release build.
- Package identity:
0.4.5, revision4bd94a07976c1896497eed1c49b0c1dc4cf418b7, fingerprint6b724ccfe14714b3744965daa70be5191a12c75ed8995498d61447cdf4ad769e.
Assets
pi-chat-windows-0.4.5.zipis the runnable Windows package.- SHA-256:
763bdfffd4870dbbfe724bb276db73fedbe743ae628138fb761fed36bde037d7 pi-chat-windows-0.4.5.zip.sha256contains the checksum manifest.- GitHub-generated source
.zipand.tar.gzarchives are source-only development inputs.
Pi Chat remains loopback-only and local-first. It does not provide remote hosting, a desktop shell, or a replacement Pi agent loop.