Skip to content

Commit 7484e73

Browse files
authored
Merge pull request #759 from Pipelex/release/v0.20.9
Release v0.20.9
2 parents 806e3d1 + c6ae2de commit 7484e73

194 files changed

Lines changed: 3644 additions & 2637 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/release/SKILL.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,19 @@ Run `make agent-check`. This is the gate — if it fails, stop and report the
4444
errors so they can be fixed before retrying. Do not proceed past this step on
4545
failure.
4646

47-
### 4. Finalize the changelog
47+
### 4. Ensure we're on the right branch
48+
49+
The release branch must be named `release/vX.Y.Z` where X.Y.Z is the **new**
50+
version. All file modifications (changelog, version bump, lock, badge) must
51+
happen on this branch.
52+
53+
- If already on `release/vX.Y.Z` matching the new version, stay on it.
54+
- If on `dev`, `main`, or any other branch, create and switch to
55+
`release/vX.Y.Z` from the current HEAD.
56+
- If on a `release/` branch for a **different** version, warn the user and ask
57+
how to proceed.
58+
59+
### 5. Finalize the changelog
4860

4961
Add a new version entry at the top of the changelog for the release.
5062

@@ -71,18 +83,18 @@ Add a new version entry at the top of the changelog for the release.
7183
...
7284
```
7385

74-
### 5. Bump the version in pyproject.toml
86+
### 6. Bump the version in pyproject.toml
7587

7688
Edit `pyproject.toml` line 3 to the new version string. Only change the version
7789
field — don't touch anything else.
7890

79-
### 6. Lock dependencies
91+
### 7. Lock dependencies
8092

8193
Run `make li` to regenerate `uv.lock` and reinstall. This ensures the lockfile
8294
reflects the new version in `pyproject.toml`. If this step fails, stop and
8395
report the error.
8496

85-
### 7. Update the test count badge
97+
### 8. Update the test count badge
8698

8799
Run `make test-count` to get the current number of tests. Then update
88100
`.badges/tests.json` — set the `"message"` field to the count returned by
@@ -91,17 +103,6 @@ Run `make test-count` to get the current number of tests. Then update
91103
After updating, run `make check-test-badge` to verify the badge matches. If it
92104
fails, re-check the count and fix the badge file.
93105

94-
### 8. Ensure we're on the right branch
95-
96-
The release branch must be named `release/vX.Y.Z` where X.Y.Z is the **new**
97-
version.
98-
99-
- If already on `release/vX.Y.Z` matching the new version, stay on it.
100-
- If on `dev`, `main`, or any other branch, create and switch to
101-
`release/vX.Y.Z` from the current HEAD.
102-
- If on a `release/` branch for a **different** version, warn the user and ask
103-
how to proceed.
104-
105106
### 9. Commit and push
106107

107108
Stage all release-related changes. This includes at minimum `pyproject.toml`,

.github/workflows/doc-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
- name: Install mkdocs
3535
run: |
3636
python -m pip install --upgrade pip
37-
pip install mkdocs==1.6.1 mkdocs-material==9.6.14 mkdocs-glightbox==0.4.0 mkdocs-meta-manager==1.1.0
37+
pip install mkdocs==1.6.1 mkdocs-material==9.6.14 mkdocs-glightbox==0.4.0 mkdocs-meta-manager==1.1.0 mkdocs-redirects==1.2.2
3838
3939
- name: Check documentation build
4040
run: mkdocs build --strict

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,5 @@ mthds-wip
7373
derived/
7474

7575
# Claude plans
76-
.claude/plans/
76+
.claude/plans/
77+
.gstack/

.pipelex/inference/backends/pipelex_gateway.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
# with direct provider backends (openai, anthropic, etc.) instead.
3131
#
3232
# Documentation:
33-
# https://docs.pipelex.com/home/7-configuration/config-technical/inference-backend-config/
33+
# https://docs.pipelex.com/latest/configuration/config-technical/inference-backend-config/
3434
# Support: https://go.pipelex.com/discord
3535
#
3636
################################################################################

.pipelex/inference/backends/pipelex_gateway_models.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Pipelex Gateway — Available Models
22
This file lists the LLMs, document extraction models, and image generation models currently available through Pipelex Gateway.
3-
For configuration details, see the [documentation](https://docs.pipelex.com/latest/home/5-setup/configure-ai-providers/#option-1-pipelex-gateway-easiest-for-getting-started).
3+
For configuration details, see the [documentation](https://docs.pipelex.com/latest/setup/configure-ai-providers/#option-1-pipelex-gateway-easiest-and-most-powerful-for-getting-started).
44

55
## Language Models (LLM)
66

@@ -515,6 +515,6 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
515515

516516

517517
> **AUTO-GENERATED FILE** - Do not edit manually.
518-
> Last updated: 2026-03-10T06:49:52Z
518+
> Last updated: 2026-03-14T15:45:06Z
519519
>
520520
> Run `pipelex-dev update-gateway-models` or `make ugm` to regenerate.

.pipelex/inference/backends/pipelex_gateway_models_plain.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Pipelex Gateway — Available Models (Plain Text)
22

33
This file lists the LLMs, document extraction models, and image generation models currently available through Pipelex Gateway.
4-
For configuration details, see the [documentation](https://docs.pipelex.com/latest/home/5-setup/configure-ai-providers/#option-1-pipelex-gateway-easiest-for-getting-started).
4+
For configuration details, see the [documentation](https://docs.pipelex.com/latest/setup/configure-ai-providers/#option-1-pipelex-gateway-easiest-and-most-powerful-for-getting-started).
55

66
**Note:** This is the plain-text readable version. See `pipelex_gateway_models.md` for the HTML-styled version.
77

@@ -193,6 +193,6 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
193193

194194

195195
> **AUTO-GENERATED FILE** - Do not edit manually.
196-
> Last updated: 2026-03-10T06:49:52Z
196+
> Last updated: 2026-03-14T15:45:06Z
197197
>
198198
> Run `pipelex-dev update-gateway-models` or `make ugm` to regenerate.

CHANGELOG.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## [v0.20.9] - 2026-03-16
4+
5+
### Changed
6+
7+
- Reorganize documentation site architecture and navigation.
8+
- Add SEO meta descriptions to all doc pages.
9+
- Redesign README: lead with value, collapse details.
10+
311
## [v0.20.8] - 2026-03-13
412

513
- Add `needs_model_specs=True` to agent CLI run and models commands.
@@ -186,7 +194,7 @@
186194

187195
**`pipelex build runner`** — Now automatically generates both the Python runner file AND the required Pydantic structures. When you run this command, it creates a complete, ready-to-execute Python script that imports the generated structures, so you can immediately use typed objects in your pipeline code.
188196

189-
See the [Build Commands documentation](https://docs.pipelex.com/home/9-tools/cli/#build-commands) for usage examples.
197+
See the [Build Commands documentation](https://docs.pipelex.com/latest/tools/cli/build/) for usage examples.
190198

191199
- **New Backends & Models**:
192200
- **Hugging Face Inference** — Support for Hugging Face Inference API, including `qwen-image` text-to-image model.
@@ -209,7 +217,7 @@
209217
- **LLM Reasoning Controls**: Unified support for "Thinking" models (Chain of Thought) with `reasoning_effort`, `reasoning_budget`, and `thinking_mode` parameters. Supports Anthropic Extended Thinking, Google Gemini Thinking, OpenAI Reasoning (`o1`/`o3`), and Mistral/Magistral models. Includes new presets: `$deep-analysis` and `$quick-reasoning`.
210218
- **Image-to-Image Generation**: `PipeImgGen` now supports input images via `input_images` field, with `InputImagesTaxonomy` for provider-specific handling and variable reference detection (`{{ var }}`, `$var`, `@var`) in prompts.
211219
- **PipeCompose "Construct" Mode**: New `construct` mode for building structured objects (dictionaries/Pydantic models) directly from variables.
212-
- **Nested concepts in inline structures**: You can now define nested structures for your concepts in your `.plx` files. Learn more here: [Nested Concepts in Inline Structures](https://docs.pipelex.com/home/6-build-reliable-ai-workflows/concepts/inline-structures).
220+
- **Nested concepts in inline structures**: You can now define nested structures for your concepts in your `.plx` files. Learn more here: [Nested Concepts in Inline Structures](https://docs.pipelex.com/latest/building-methods/concepts/inline-structures).
213221

214222
### Breaking Changes
215223

@@ -456,7 +464,7 @@
456464
- **LLM Reasoning Controls**: Unified support for "Thinking" models (Chain of Thought) with `reasoning_effort`, `reasoning_budget`, and `thinking_mode` parameters. Supports Anthropic Extended Thinking, Google Gemini Thinking, OpenAI Reasoning (`o1`/`o3`), and Mistral/Magistral models. Includes new presets: `$deep-analysis` and `$quick-reasoning`.
457465
- **Image-to-Image Generation**: `PipeImgGen` now supports input images via `input_images` field, with `InputImagesTaxonomy` for provider-specific handling and variable reference detection (`{{ var }}`, `$var`, `@var`) in prompts.
458466
- **PipeCompose "Construct" Mode**: New `construct` mode for building structured objects (dictionaries/Pydantic models) directly from variables.
459-
- **Nested concepts in inline structures**: You can now define nested structures for your concepts in your `.plx` files. Learn more here: [Nested Concepts in Inline Structures](https://docs.pipelex.com/home/6-build-reliable-ai-workflows/concepts/inline-structures).
467+
- **Nested concepts in inline structures**: You can now define nested structures for your concepts in your `.plx` files. Learn more here: [Nested Concepts in Inline Structures](https://docs.pipelex.com/latest/building-methods/concepts/inline-structures).
460468

461469
### Added
462470
- **Builder Auto-Repair**: Self-healing capabilities including auto-generation of undeclared concepts, multiplicity mismatch fixes, and pruning of unreachable pipes/unused concepts.
@@ -558,7 +566,7 @@
558566

559567
**`pipelex build runner`** — Now automatically generates both the Python runner file AND the required Pydantic structures. When you run this command, it creates a complete, ready-to-execute Python script that imports the generated structures, so you can immediately use typed objects in your pipeline code.
560568

561-
See the [Build Commands documentation](https://docs.pipelex.com/home/9-tools/cli/#build-commands) for usage examples.
569+
See the [Build Commands documentation](https://docs.pipelex.com/latest/tools/cli/build/) for usage examples.
562570

563571
- **New Backends & Models**:
564572
- **Hugging Face Inference** — Support for Hugging Face Inference API, including `qwen-image` text-to-image model.
@@ -1237,13 +1245,13 @@ This is all in the spirit of making Pipelex a declarative language, where you ex
12371245

12381246
We've completely redesigned how LLMs are configured and accessed in Pipelex, making it more flexible and easier to get started:
12391247

1240-
- **Get started in seconds** with [Pipelex Inference](home/7-configuration/config-technical/inference-backend-config.md): Use a single API key to access all major LLM providers (OpenAI, Anthropic, Google, Mistral, and more)
1248+
- **Get started in seconds** with [Pipelex Inference](configuration/config-technical/inference-backend-config.md): Use a single API key to access all major LLM providers (OpenAI, Anthropic, Google, Mistral, and more)
12411249
- **Flexible backend configuration**: Configure multiple inference backends (Azure OpenAI, Amazon Bedrock, Vertex AI, etc.) through simple TOML files in `.pipelex/inference/`
1242-
- **Smart model routing**: Automatically route models to the right backend using [routing profiles](home/7-configuration/config-technical/inference-backend-config.md#routing-profiles) with pattern matching
1250+
- **Smart model routing**: Automatically route models to the right backend using [routing profiles](configuration/config-technical/inference-backend-config.md#routing-profiles) with pattern matching
12431251
- **User-friendly aliases**: Define shortcuts like `best-claude``claude-4.1-opus` with optional fallback chains
12441252
- **Cost-aware model specs**: Each model includes detailed pricing, capabilities, and constraints for better cost management
12451253

1246-
For complete details, see the [Inference Backend Configuration](home/7-configuration/config-technical/inference-backend-config.md) documentation.
1254+
For complete details, see the [Inference Backend Configuration](configuration/config-technical/inference-backend-config.md) documentation.
12471255

12481256
### Added
12491257

CLAUDE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,13 @@ This document outlines the core coding standards, best practices, and quality co
259259
260260
## Standards related to developing the Pipelex codebase
261261
262+
### Spec vs Blueprint Architecture
263+
264+
- **Blueprints** (`pipelex/pipe_operators/`, `pipelex/pipe_controllers/`, `pipelex/core/`) are the MTHDS language reference — what `.mthds` files parse into.
265+
- **Specs** (`pipelex/builder/pipe/`) are a convenience authoring format for AI agents. Each spec has `to_blueprint()` that transforms it into the corresponding blueprint. Spec-level fields may differ from blueprint-level fields.
266+
267+
When adding validation or fields, decide which layer they belong to. Language rules go on blueprints; authoring convenience goes on specs. See `pipelex/builder/CLAUDE.md` for details.
268+
262269
### Main config
263270
264271
- The main config model is defined using `ConfigModel` classes, derived from `pydantic BaseModel`

Makefile

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,9 @@ check-TODOs: env
802802
DOCS_VERSION := $(shell grep -m1 '^version = ' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
803803
SITE_DOMAIN := $(shell cat docs/CNAME 2>/dev/null | tr -d '[:space:]')
804804

805+
# Authoritative robots.txt for the domain root (docs.pipelex.com/robots.txt).
806+
# Deployed by docs-deploy-root. Note: docs/robots.txt is a no-op — it only
807+
# lands at /latest/robots.txt, which crawlers ignore per RFC 9309.
805808
define ROOT_ROBOTS_TXT
806809
User-agent: *
807810
Allow: /latest/
@@ -818,9 +821,22 @@ define ROOT_INDEX_HTML
818821
<title>Redirecting to latest documentation...</title>
819822
<meta http-equiv="refresh" content="0;url=/latest/">
820823
<link rel="canonical" href="https://$(SITE_DOMAIN)/latest/">
824+
<style>
825+
body {
826+
margin: 0;
827+
min-height: 100vh;
828+
display: flex;
829+
align-items: center;
830+
justify-content: center;
831+
background: #2e303e;
832+
color: #ccc;
833+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
834+
}
835+
a { color: #45BF9F; text-decoration: none; }
836+
</style>
821837
</head>
822838
<body>
823-
<p>Redirecting to <a href="/latest/">latest documentation</a>...</p>
839+
<p>Redirecting to <a href="/latest/">latest documentation</a>&#8230;</p>
824840
</body>
825841
</html>
826842
endef

0 commit comments

Comments
 (0)