## Problem and outcome The App console could show a launch address that still contained private activation data when copied, while the terminal hyperlink opened a cleaned address. On narrow phones, playback controls could wrap into a second row and cover too much of the video. The handoff now presents the same safe, activation-preserving address everywhere, and the playback bar keeps one compact row with a shorter flexible volume control. ## Changes - Sanitize the App activation URL before rendering both copyable console output and terminal hyperlinks, preserving App handoff without exposing credentials. - Keep the mobile playback bar on one row; let the volume slider shrink with the available width and hide the nonessential percentage readout at the narrowest sizes. - Add bilingual macOS browser/App audio-capture troubleshooting guidance and record the physical-device boundary. ## Verification - `npm run check`: TypeScript, 73 test files / 1008 tests, and the Web production build passed. - `npm run check:go-core`: Go tests, formatting, vet and supported core target builds passed. - `node scripts/check-docs.mjs` and `scripts/check-project-state.ps1` passed. - Narrow-layout browser checks covered 320px, 360px, 375px, 390px, 430px, 768px and 1280px widths without wrapping or horizontal overflow. - The interaction prototype remains local and uncommitted for later acceptance; it is not part of this PR. ## Release notes ### 中文 这是一个维护版本,改善 App 启动链接的安全提示和手机上的播放控制体验。 #### 修复 - 修复 App 控制台复制链接时可能带出私有激活参数的问题。复制、终端链接和手动打开地址现在保持一致,并继续支持自动唤起 App。 - 修复窄屏手机上的播控挤成两行、遮挡画面的问题。控件保持单行,音量滑条会按可用空间缩短,过窄时隐藏非关键的百分比读数。 - 补充 macOS 浏览器与 App 采集声音选项的排查说明,明确不同浏览器和系统版本的能力边界。 #### 兼容性 本版本不改变通信协议、配置格式或存储格式。App 公网邀请、本地模式和已部署站点按原方式更新即可;已打开的页面刷新后使用新的播控布局。 ### English This maintenance release improves App launch links and playback controls on phones. #### Fixes - Fixed the App console sometimes exposing private activation parameters in a copied launch address. The copied address, terminal hyperlink and manual URL now match while still supporting App handoff. - Fixed narrow phone layouts wrapping playback controls into a second row and covering the video. Controls stay on one row, the volume slider shrinks with the available space, and the nonessential percentage readout hides when space is tight. - Added macOS troubleshooting guidance for browser and App audio capture, including the current browser and OS support boundaries. #### Compatibility This release changes no wire protocol, configuration format or storage format. Update the App for public invitations or Local mode, or update the deployed site as usual; refresh an open page to use the new playback layout.
Piik Documentation
About Piik · 中文介绍 · 中文上手指南
For using Piik, troubleshooting or self-hosting, start with the reader documentation · 中文文档中心. This page also indexes developer and maintainer references.
Guides And References
| Task | Guide |
|---|---|
| Use Piik online | Open the online site · Online sharing guide |
| Watch a friend or share my first screen | Getting started |
| Choose an App mode or fix sound and connection trouble | First-use help |
| Page opens but video will not connect / 网页能打开,画面连不上 | Connection troubleshooting · 中文排查 |
| Run Piik App, check platform requirements, or build a package | App guide · 中文 App 指南 |
| Try or change the source code | Run from source |
| Find a directory or the module responsible for a behavior | Repository layout and module map |
| Find the shared product, design and lifecycle rules | Standards index |
| Host a site for my group | Self-hosting · 中文部署 |
| Keep a server running with systemd or Docker | Service management · 中文服务管理 |
| Set passwords, ports, or room storage | Configuration |
| Update my server | Server updates |
| Build, publish or recover a maintained release | Maintainer release tooling |
| Send a useful bug report | Diagnostics and export |
| Translate Piik or improve wording | Translation guide · 中文翻译教程 |
| Check release and platform readiness | Current status |
The introduction, getting-started, App, self-hosting, service-management and translation guides are available in English and Chinese. Technical references keep one shared version.
Run from source
You can try the Browser application locally with Node from .node-version, npm from package.json, and Go 1.26 from go.mod. Run these commands from the repository root.
Start the web UI:
npm ci
npm run dev
In a second terminal, start the server. For a POSIX shell:
PORT=8788 PUBLIC_BASE_URL=http://localhost:8787 go run ./cmd/piik-server
Or in PowerShell:
$env:PORT = '8788'
$env:PUBLIC_BASE_URL = 'http://localhost:8787'
go build -o build/dev/piik-server.exe ./cmd/piik-server
./build/dev/piik-server.exe
The fixed Windows executable path avoids repeated firewall prompts from go run.
Open localhost:8787, start sharing, and open the invitation
in another browser tab to try watching. This localhost invitation stays on your
computer; remote invitations need a reachable origin as described in
configuration.
Browser capture requires localhost or HTTPS.
For the self-contained App, follow App development and packaging, including the platform's native capture requirements.
Work on Piik
Contributing covers the workflow and choosing focused checks. The main verification commands are:
npm run check
npm run check:go
Use the naming and copy guide for product names, commands, role labels and Chinese/English voice. Piik-owned code uses MIT; see the licensing guide for third-party components.
For the public website, see the introduction design and website preview and publishing.
Understand the product
| Topic | Its reference |
|---|---|
| Invitations, room codes and passwords | Rooms and access |
| How viewers connect | Routing and transport |
| Screen capture, quality controls and sound | Media quality |
| Host and viewer behavior | Presentation and lifecycle |
| Why a design was chosen | Architecture decisions |
| Measurements and platform limits | Research and verification status |
Shared conventions
| When changing… | Follow this owner |
|---|---|
| Module responsibilities or interfaces | Engineering and contract map |
| Product/tool names, role labels or copy | Naming and copy |
| UI colour, illustration, motion or layout | Visual language |
| Overlays, titles or state indicators | Media status |
| Releases, protocols or stored formats | Versions and compatibility |
| Main protection or automatic publishing | GitHub operations |
| Documentation or a duplicated rule | Documentation ownership |
| Checks, PRs, integration or cleanup | Contributing |
For ongoing work, use TODO. Project memory provides the compact product map; status indexes current source and deployment boundaries. Completed work lives in Git history and pull requests.