release: 0.1.5 (#134)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ba0860f8d1
commit
6664edf890
44 files changed
+596
-151
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,17 @@
|
||||
# Install documentation and landing refresh for 0.1.5
|
||||
|
||||
The 0.1.5 release repackages how the product introduces and installs itself, in both READMEs and on the landing site.
|
||||
|
||||
## One tagline pair everywhere
|
||||
|
||||
README and landing unify on the same two lines: **"Your Automated Agent Builder, Right on Your Desktop / Server"** (the landing hero keeps rotating the Desktop/Server word; the README writes the pair with a slash) and the subtitle **"Create Self-Evolving Agents in One Click"** — 中文为「全自动 Agent 构建平台,运行在你的桌面 / 服务器上」与「一键创建自进化 Agent」. The hero's "Agents building agents" badge is removed; the phrase moves to the LangChain comparison section, retitled **"Building Agents with Agents"** (用 Agent 构建 Agent).
|
||||
|
||||
## README: every install method spelled out
|
||||
|
||||
The Installation section now gives each method its own complete, copy-paste code block — Linux, macOS and Windows online one-liners, npm — each ending in `penguin web`, with the five offline bundles documented per-OS inside a collapsible `<details>` block (extract-and-run commands, architecture hints, the unconditional SHA256 note). The Web-App feature pitch folds into the section intro; the CLI & SDK section is unchanged.
|
||||
|
||||
## Landing: switch, don't list
|
||||
|
||||
- The hero's install box and the quick start's install step both switch by OS (Linux / macOS / Windows) instead of stacking every command; the quick start adds a second online/offline toggle, with the offline side carrying the bundle note, per-OS commands, architecture hints and a Releases link. Offline commands live beside the online one-liners in `lib/links.ts`.
|
||||
- The announcement bar drops from four rotating items to two: Kimi K3 with the free models, and the AMD Developer Program credits.
|
||||
- The 0.1.5 release post ships in both languages (`penguinharness-0-1-5`), covering offline installs, attachments and input images, in-run LLM recovery, and the skill-library upgrades.
|
||||
File renamed without changes.
@@ -0,0 +1,21 @@
|
||||
# web-design and penguin-sdk skills: editorial theme, output contracts, thinking and images
|
||||
|
||||
Two of the built-in skills were reworked across three iterations (web-design v3 → v6, penguin-sdk v14 → v17), with the goal of getting better results from shorter user prompts.
|
||||
|
||||
## web-design
|
||||
|
||||
- A second complete visual language, the opt-in **paper editorial** theme: warm paper/ink/hairline tokens with one warm accent plus a status green, system-serif display headings over a sans body (CJK serif fallbacks, still no CDN fonts), uppercase mono micro-labels as the hierarchy tool, tighter radii with soft warm shadows, and signature shapes (asymmetric-corner brand mark, echoed user-bubble radius, orbit-medallion flourish). Light-only; the GitHub-style default remains, and the two never mix.
|
||||
- Theme-agnostic chat/RAG upgrades: an optional knowledge side panel with index-status rows, a fuller empty-state composition (eyebrow → one-accent-word title → subtitle → pill chips or numbered example cards), a retrieval status line while answers stream, a sources accordion as an alternative citation surface, and composer refinements (kbd hints, disclaimer, gradient fade).
|
||||
- A **ship-complete contract**: the one-line request is the whole spec — the skill never asks how a page should look, routes the recipe by request shape, and every delivery includes `lang`/viewport/title, persisted dark mode, designed loading/empty/error states, a working keyboard path, alt text and zero external requests.
|
||||
- Chat recipes for the two message kinds modern models add: a collapsible reasoning block (auto-collapsed at the first answer delta, never restyled as answer prose) and composer image attachments (paperclip/paste/drag-drop, thumbnail queue, in-message previews).
|
||||
|
||||
## penguin-sdk
|
||||
|
||||
- A **Thinking and image messages** section, verified against core's OmniMessage protocol: stream `partial_thinking` into its own collapsed channel and ignore `fidelity` (core's replay bookkeeping); build image input with `imageUrlMessage` beside `userText`, with the config `vision` flag degrading gracefully (`[attached image: <path>]` folding read back through the project's `vision_model`); and a cheat sheet for the remaining app-relevant payloads (`request_end` error signals, `token_usage`, compaction events, tool activity).
|
||||
- The streaming-loop guidance covers `opts.thinkingLevel` (`none…xhigh`, a per-turn override of `model.thinking_level`) and names Session lifetime as the app's memory model — one long-lived Session for stateful chat, one per request for stateless QA.
|
||||
- An **output format and language** block in the RAG recipe: fix the format in the persona and per-request prompt (plain text, bare `[n]` citations — or a sanitized HTML whitelist when structure matters) instead of shipping a Markdown renderer, and bridge cross-language lexical retrieval with a small ingest-time bilingual keyword map expanded in `search()`.
|
||||
- The overlapping "before you build" / "check the model first" sections merged into one keys-and-data-root section, each rule stated once.
|
||||
|
||||
## Web draft-page examples
|
||||
|
||||
With the knowledge moved into the skills, the draft page's example prompts shrink in both languages: the RAG example drops its BM25 cross-language lecture and empty-state instruction (keeping the bilingual self-test step), and the game-center / music-player examples drop the theme-persistence and responsive details the web-design skill now guarantees.
|
||||
File renamed without changes.
@@ -0,0 +1,39 @@
|
||||
# Version 0.1.5
|
||||
|
||||
Released on 2026-07-30.
|
||||
|
||||
- [2026-07-30] Skills: web-design (v3 → v6) gains an opt-in paper editorial theme, a ship-complete delivery contract, and chat recipes for the thinking block and composer attachments; penguin-sdk (v14 → v17) documents the thinking and image message kinds, a plain-text output contract, cross-language BM25 retrieval, and a merged keys/data-root setup flow — with the Web draft page's example prompts shortened now that the skills carry the knowledge. ([details](2026-07-30-skills-web-design-and-penguin-sdk.md))
|
||||
|
||||
- [2026-07-30] Sites and docs: the README and landing page unify on the new tagline pair ("Your Automated Agent Builder, Right on Your Desktop / Server" · "Create Self-Evolving Agents in One Click"); the README spells out every install method as a complete per-OS code block with the offline bundles behind a collapsible; the landing install sections switch by OS and method instead of listing everything; the announcement bar drops to two items; the LangChain comparison is retitled "Building Agents with Agents"; and the 0.1.5 release post ships in both languages. ([details](2026-07-30-install-docs-and-landing.md))
|
||||
|
||||
- [2026-07-30] Backward compatibility: the batch's compat decisions in one place — the two per-panel localStorage width keys adopted into one shared key (widest wins, self-cleaning, with its removal release named), plus the changes checked and found to need no handling. ([details](2026-07-30-backward-compatibility.md))
|
||||
|
||||
- [2026-07-30] Web App: navigation entries settle on one name each across the sidebar, the collapsed rail and page titles; the user menu's three update rows collapse into one; the Workspace and Agents panels share a single (wider) width and a single open/closed lifetime, closing only on a new chat; the Agents panel says what each subagent was sent to do; Project display names become editable; and the draft page's examples become a fixed-height, always-one-open folder shelf with a multi-agent game-center example added. ([details](2026-07-30-web-app-refinements.md))
|
||||
|
||||
- [2026-07-30] CLI: pasting CJK or emoji into `penguin chat` no longer corrupts a character wherever the terminal split its stdin blocks — each chunk was decoded on its own, so a character torn across two reads became three replacement characters instead of one, and about 1400 Chinese characters was enough to trigger it. ([details](2026-07-30-paste-filter-utf8.md))
|
||||
|
||||
- [2026-07-30] Docs: three reference blocks catch up with the code they document — `run_subagent`'s argument block lists the `provider` that `model_id` must be paired with, the provider credential table covers the three gateway groups it had been missing, and the Project model entry table documents `max_tokens`. ([details](2026-07-30-docs-tools-and-configuration-reference.md))
|
||||
|
||||
- [2026-07-29] Core: every LLM failure except a rejected credential now retries inside the run — the classifier separating transient from permanent is an allowlist, so a gateway wording a transient fault its own way used to kill the turn — with the retry visible in both frontends, compaction on the same set under its own shorter budget, and a recovered failure no longer reported to the operator as an incident. Separately, pressing Stop mid-request can no longer leave a Session running forever when the provider's stream neither yields nor rejects after the abort. ([details](2026-07-29-llm-request-lifecycle.md))
|
||||
|
||||
- [2026-07-29] Cost center: the error table can page back through the whole history instead of showing only the newest 20, its source column reads `[env]` rather than `environment ·`, and an ordinary non-zero exit from a command tool is no longer recorded as an error — `grep` finding nothing had been crowding out the failures the table exists to show. ([details](2026-07-29-cost-center-errors.md))
|
||||
|
||||
- [2026-07-29] Core and tooling: `PORT` / `HOST` and the internal CLI plumbing no longer reach commands the Agent runs, so a dev server started by `exec_command` picks its own port instead of binding the harness's; and the development backend moves to 7368, so `pnpm dev` no longer collides with an installed `penguin web` — or, quieter and worse, proxies to it. ([details](2026-07-29-harness-env-and-dev-ports.md))
|
||||
|
||||
- [2026-07-29] Web App: the composer can attach files of any type — written to the Session scratchpad and handed to the model as `[attached file: <path>]` lines, keeping non-ASCII names — and the `@` mention becomes an `/agent` command; both switch commands are session-only and stage their pick as a chip, cached with the text, until Enter sends. ([details](2026-07-29-composer-attachments-and-switch-commands.md))
|
||||
|
||||
- [2026-07-29] Core: the default system prompt is about a tenth shorter (1087 → 969 words), with the trim concentrated in the sections re-read every turn. It now pins replies to the user's language, states the API-key stop rule once, points at parallel subagents for large tasks, and has tooling installed once into a shared per-Agent `shared_env/` directory while project dependencies stay in the project. The App Data Dir rule also stops forbidding deliverables in a tree that a temporary Workspace lives inside. Existing Agents keep their own prompt. ([details](2026-07-29-default-system-prompt.md))
|
||||
|
||||
- [2026-07-29] Web App: the chat header's elapsed chip no longer restarts from zero when a running Session is reloaded and now counts an event still in flight, and a round interrupted before its first Request settles to the same figure whether it was watched live or replayed — the running Task is anchored to the server's own clock instead of the browser's. ([details](2026-07-29-session-elapsed.md))
|
||||
|
||||
- [2026-07-28] Web App: model configuration stops inviting the browser's saved login — every form control opts out of autofill unless it declares a real credential role, and a secret field says `new-password`, the only value Chrome and Safari honor on a password box; a closed docked side panel no longer paints its 1px divider next to the open one, which read as a second, empty panel beside the Workspace files; a provider-signature message carrying no text stops drawing an empty reply bubble after a thinking segment; Benchmark costs now follow the display currency selected in settings; the tool card states a call's outcome once instead of twice; and no page can grow the document into a second scrollbar that drags the whole shell. ([details](2026-07-28-web-app.md))
|
||||
|
||||
- [2026-07-28] Web App and CLI: duration and byte abbreviations now carry into the next unit instead of printing `1m60s` or `1024KB` — both helpers rounded the value they displayed but chose the unit (or the minute/second split) from the raw input. ([details](2026-07-28-duration-and-byte-formatting.md))
|
||||
|
||||
- [2026-07-27] Input images: mid-run steering carries them (an uncaptioned image is a complete steering message), a goal objective accepts them as scratchpad paths on every model since it is re-injected as text each round, and the composer's mid-run action button can no longer sit disabled with Stop displaced. ([details](2026-07-27-input-images.md))
|
||||
|
||||
- [2026-07-27] Windows: the `win32-x64` package bundles MinGit under `git/`, so `exec_command` has a real bash even on a machine with no Git for Windows — the shell stops depending on what happens to be installed. A user's own Git for Windows still wins (its MSYS userland is the fuller one); the bundle is the floor, and PowerShell is now reached only by npm installs. GPLv2 obligations are recorded in a new root `THIRD-PARTY-NOTICES.md`. ([details](2026-07-27-windows-bundled-shell.md))
|
||||
|
||||
- [2026-07-27] Sites: the 0.1.4 release post in both languages, with a capture script for its screenshots. ([details](2026-07-27-sites-and-blog.md))
|
||||
|
||||
- [2026-07-25] Agent tuning: the Web App gains an end-to-end example for creating, benchmarking, and optimizing an Agent through isolated CLI Sessions, while the built-in tuning Skills tighten phase ownership, private evaluation boundaries, and Evaluator dispatch contracts. ([details](2026-07-25-agent-tuning-pipeline.md))
|
||||
@@ -0,0 +1,50 @@
|
||||
PenguinHarness 0.1.5 — offline installs for every platform, attachments and images in every input, and runs that recover instead of dying.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
curl -fsSL https://penguin.ooo/install.sh | sh
|
||||
penguin web
|
||||
```
|
||||
|
||||
Windows (PowerShell):
|
||||
|
||||
```powershell
|
||||
irm https://penguin.ooo/install.ps1 | iex
|
||||
penguin web
|
||||
```
|
||||
|
||||
Linux, macOS and Windows, with a bundled Node runtime. Or via npm (needs Node >= 24):
|
||||
|
||||
```sh
|
||||
npm install -g @prismshadow/penguin-cli
|
||||
```
|
||||
|
||||
**New: fully offline installs.** This release attaches five self-contained offline bundles — `penguin-linux-{x64,arm64}-offline.tar.gz`, `penguin-darwin-{x64,arm64}-offline.tar.gz`, `penguin-win32-x64-offline.zip` — each carrying the program archive, its SHA256 checksum and the platform's installer. Download on a networked machine, copy to the target, extract, and run `./install.sh` (POSIX) or double-click `install.cmd` (Windows); offline installs verify the checksum unconditionally.
|
||||
|
||||
## Highlights
|
||||
|
||||
**Offline install everywhere.** Every platform archive now ships wrapped as a self-contained offline bundle, `install.sh` / `install.ps1` accept a verified local archive (`--archive` / `PENGUIN_ARCHIVE`) while keeping their online behavior, POSIX bundles pass their payload explicitly so the online installer never trusts archives found beside a temporary script, and renamed archives still install thanks to an embedded target manifest. The Windows package also bundles MinGit, so `exec_command` has a real bash even on a machine with no Git for Windows — your own installation still wins when present, and GPLv2 obligations are recorded in `THIRD-PARTY-NOTICES.md`.
|
||||
|
||||
**Attachments and images reach every input.** The Web composer attaches files of any type — written to the Session scratchpad and handed to the model as `[attached file: <path>]` lines, non-ASCII names preserved. Images now ride mid-run steering (an uncaptioned image is a complete steering message) and goal objectives (as scratchpad paths, re-injected as text every round, so they work on every model). The `@` mention becomes an `/agent` command, and both switch commands stage their pick as a chip until Enter sends.
|
||||
|
||||
**LLM failures recover in-run.** The transient-vs-permanent classifier is inverted: every failure except a rejected credential now retries inside the run — visible in both frontends as a live countdown — with compaction retrying under its own shorter budget and recovered failures no longer reported as operator incidents. Pressing Stop mid-request can no longer strand a Session when a provider's stream neither yields nor rejects after the abort.
|
||||
|
||||
**A skill library that designs and builds better apps.** web-design gains an opt-in paper editorial theme and a ship-complete contract (a one-line request is the whole spec — dark mode, loading/empty/error states, keyboard path and zero external requests included unasked), plus recipes for collapsible thinking blocks and composer attachments; penguin-sdk documents the thinking and image message kinds, a plain-text output contract, and cross-language BM25 retrieval. The Web draft page adds an end-to-end agent tuning example.
|
||||
|
||||
## Notable in this release
|
||||
|
||||
- **A shorter default system prompt.** About a tenth smaller (1087 → 969 words), pinned to the user's language, with shared tooling installed once into a per-Agent `shared_env/` directory. Existing Agents keep their own prompt.
|
||||
- **Web App refinements.** Navigation names unified; the Workspace and Agents panels share one width and lifetime; Project display names editable; the draft examples become a fixed-height folder shelf; the session elapsed chip survives reloads and counts in-flight events.
|
||||
- **Cost center, honest errors.** The error table pages through the whole history, ordinary non-zero exits are no longer recorded as errors, and environment-sourced entries read `[env]`.
|
||||
- **CLI paste fix.** CJK and emoji pasted into `penguin chat` no longer corrupt when the terminal splits stdin blocks mid-character.
|
||||
- **Formatting carries.** Duration and byte abbreviations roll into the next unit instead of printing `1m60s` or `1024KB`.
|
||||
- **Cleaner harness env.** `PORT` / `HOST` and internal CLI plumbing no longer reach commands the Agent runs, and the development backend moves to port 7368, out of an installed `penguin web`'s way.
|
||||
- **Docs catch up.** `run_subagent`'s `provider` argument, the gateway credential groups, and the Project model entry's `max_tokens` are documented.
|
||||
- **A refreshed front door.** README and landing unify on the new tagline pair, the README spells out every install method per-OS with offline bundles in a collapsible, and the landing page switches install methods by OS instead of listing them all.
|
||||
|
||||
## Requirements
|
||||
|
||||
Linux or macOS (x64 / arm64), or Windows 10+ (x64). The installers bundle their own Node runtime; installing from npm needs Node >= 24. All data stays under `~/.penguin/data`.
|
||||
|
||||
Full detail: [changelog/0.1.5/](https://github.com/Prism-Shadow/penguin-harness/tree/main/changelog/0.1.5).
|
||||
@@ -1,35 +1,3 @@
|
||||
# Unreleased
|
||||
|
||||
Changes since v0.1.4. The version number is assigned at release, when this folder is renamed.
|
||||
|
||||
- [2026-07-30] Backward compatibility: the batch's compat decisions in one place — the two per-panel localStorage width keys adopted into one shared key (widest wins, self-cleaning, with its removal release named), plus the changes checked and found to need no handling. ([details](2026-07-30-backward-compatibility.md))
|
||||
|
||||
- [2026-07-30] Web App: navigation entries settle on one name each across the sidebar, the collapsed rail and page titles; the user menu's three update rows collapse into one; the Workspace and Agents panels share a single (wider) width and a single open/closed lifetime, closing only on a new chat; the Agents panel says what each subagent was sent to do; Project display names become editable; and the draft page's examples become a fixed-height, always-one-open folder shelf with a multi-agent game-center example added. ([details](2026-07-30-web-app-refinements.md))
|
||||
|
||||
- [2026-07-30] CLI: pasting CJK or emoji into `penguin chat` no longer corrupts a character wherever the terminal split its stdin blocks — each chunk was decoded on its own, so a character torn across two reads became three replacement characters instead of one, and about 1400 Chinese characters was enough to trigger it. ([details](2026-07-30-paste-filter-utf8.md))
|
||||
|
||||
- [2026-07-30] Docs: three reference blocks catch up with the code they document — `run_subagent`'s argument block lists the `provider` that `model_id` must be paired with, the provider credential table covers the three gateway groups it had been missing, and the Project model entry table documents `max_tokens`. ([details](2026-07-30-docs-tools-and-configuration-reference.md))
|
||||
|
||||
- [2026-07-29] Core: every LLM failure except a rejected credential now retries inside the run — the classifier separating transient from permanent is an allowlist, so a gateway wording a transient fault its own way used to kill the turn — with the retry visible in both frontends, compaction on the same set under its own shorter budget, and a recovered failure no longer reported to the operator as an incident. Separately, pressing Stop mid-request can no longer leave a Session running forever when the provider's stream neither yields nor rejects after the abort. ([details](2026-07-29-llm-request-lifecycle.md))
|
||||
|
||||
- [2026-07-29] Cost center: the error table can page back through the whole history instead of showing only the newest 20, its source column reads `[env]` rather than `environment ·`, and an ordinary non-zero exit from a command tool is no longer recorded as an error — `grep` finding nothing had been crowding out the failures the table exists to show. ([details](2026-07-29-cost-center-errors.md))
|
||||
|
||||
- [2026-07-29] Core and tooling: `PORT` / `HOST` and the internal CLI plumbing no longer reach commands the Agent runs, so a dev server started by `exec_command` picks its own port instead of binding the harness's; and the development backend moves to 7368, so `pnpm dev` no longer collides with an installed `penguin web` — or, quieter and worse, proxies to it. ([details](2026-07-29-harness-env-and-dev-ports.md))
|
||||
|
||||
- [2026-07-29] Web App: the composer can attach files of any type — written to the Session scratchpad and handed to the model as `[attached file: <path>]` lines, keeping non-ASCII names — and the `@` mention becomes an `/agent` command; both switch commands are session-only and stage their pick as a chip, cached with the text, until Enter sends. ([details](2026-07-29-composer-attachments-and-switch-commands.md))
|
||||
|
||||
- [2026-07-29] Core: the default system prompt is about a tenth shorter (1087 → 969 words), with the trim concentrated in the sections re-read every turn. It now pins replies to the user's language, states the API-key stop rule once, points at parallel subagents for large tasks, and has tooling installed once into a shared per-Agent `shared_env/` directory while project dependencies stay in the project. The App Data Dir rule also stops forbidding deliverables in a tree that a temporary Workspace lives inside. Existing Agents keep their own prompt. ([details](2026-07-29-default-system-prompt.md))
|
||||
|
||||
- [2026-07-29] Web App: the chat header's elapsed chip no longer restarts from zero when a running Session is reloaded and now counts an event still in flight, and a round interrupted before its first Request settles to the same figure whether it was watched live or replayed — the running Task is anchored to the server's own clock instead of the browser's. ([details](2026-07-29-session-elapsed.md))
|
||||
|
||||
- [2026-07-28] Web App: model configuration stops inviting the browser's saved login — every form control opts out of autofill unless it declares a real credential role, and a secret field says `new-password`, the only value Chrome and Safari honor on a password box; a closed docked side panel no longer paints its 1px divider next to the open one, which read as a second, empty panel beside the Workspace files; a provider-signature message carrying no text stops drawing an empty reply bubble after a thinking segment; Benchmark costs now follow the display currency selected in settings; the tool card states a call's outcome once instead of twice; and no page can grow the document into a second scrollbar that drags the whole shell. ([details](2026-07-28-web-app.md))
|
||||
|
||||
- [2026-07-28] Web App and CLI: duration and byte abbreviations now carry into the next unit instead of printing `1m60s` or `1024KB` — both helpers rounded the value they displayed but chose the unit (or the minute/second split) from the raw input. ([details](2026-07-28-duration-and-byte-formatting.md))
|
||||
|
||||
- [2026-07-27] Input images: mid-run steering carries them (an uncaptioned image is a complete steering message), a goal objective accepts them as scratchpad paths on every model since it is re-injected as text each round, and the composer's mid-run action button can no longer sit disabled with Stop displaced. ([details](2026-07-27-input-images.md))
|
||||
|
||||
- [2026-07-27] Windows: the `win32-x64` package bundles MinGit under `git/`, so `exec_command` has a real bash even on a machine with no Git for Windows — the shell stops depending on what happens to be installed. A user's own Git for Windows still wins (its MSYS userland is the fuller one); the bundle is the floor, and PowerShell is now reached only by npm installs. GPLv2 obligations are recorded in a new root `THIRD-PARTY-NOTICES.md`. ([details](2026-07-27-windows-bundled-shell.md))
|
||||
|
||||
- [2026-07-27] Sites: the 0.1.4 release post in both languages, with a capture script for its screenshots. ([details](2026-07-27-sites-and-blog.md))
|
||||
|
||||
- [2026-07-25] Agent tuning: the Web App gains an end-to-end example for creating, benchmarking, and optimizing an Agent through isolated CLI Sessions, while the built-in tuning Skills tighten phase ownership, private evaluation boundaries, and Evaluator dispatch contracts. ([details](2026-07-25-agent-tuning-pipeline.md))
|
||||
Changes since v0.1.5. The version number is assigned at release, when this folder is renamed.
|
||||
Reference in new issue
Block a user