Skip to content

Commit 6bfdb22

Browse files
fsecada01claude
andauthored
chore(release): 0.5.0b0 (#20)
Minor beta release. Headline feature is the new Flask adapter; also ships client-side optimistic UI patching and JinjaX catalog-sharing guidance. - Bump version 0.4.1b0 -> 0.5.0b0 (new adapter => minor). - CHANGELOG: add [0.5.0b0]; backfill missing [0.4.1b0] and [0.4.0b0] sections. - README: update Current Version to 0.5.0-beta. Claude-Session: https://claude.ai/code/session_017hdmTV88wAXU8ew1rorMjt Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 6b1980c commit 6bfdb22

3 files changed

Lines changed: 54 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,58 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.5.0b0] - 2026-06-24
9+
10+
### Added
11+
12+
- **Flask adapter** (`[flask]` optional extras group) — adds a `FlaskRenderer`
13+
(Jinja2-backed; share the app's `jinja_env` for consistent filters, globals,
14+
and extensions) and a synchronous component endpoint exposed as a Flask
15+
blueprint (`POST /components/<name>` via `register_component_routes(app)` or
16+
`create_component_blueprint()`). Parses JSON and HTMX form-encoded bodies and
17+
returns JSON `404`/`400`/`500` errors. The `[flask]` extra pulls only
18+
`flask>=3.0` — no FastAPI/Django/JinjaX. See `examples/flask_example.py`.
19+
- **Optimistic UI patching in the client**`component-client.js` now applies
20+
an optimistic patch synchronously before the request completes, reading
21+
`data-optimistic` JSON / `data-optimistic-toggle` from the trigger element and
22+
rolling back when the server response arrives. Ships an accompanying
23+
`component-framework.css` with `[data-loading]` / `[data-optimistic]` hooks
24+
(reduced-motion aware) and updated `component-client.d.ts` typings.
25+
- **Sharing an existing JinjaX catalog** — documented and clarified that
26+
`JinjaxRenderer` should be constructed with the application's existing
27+
`Catalog` so component templates inherit host globals and filters, rather than
28+
a fresh, empty catalog.
29+
30+
### Changed
31+
32+
- `[all]` and `[dev]` extras groups now include the `flask` extra.
33+
34+
## [0.4.1b0] - 2026-06-23
35+
36+
### Fixed
37+
38+
- FastAPI and Litestar adapters now accept form-encoded (HTMX default)
39+
`POST` bodies in addition to JSON.
40+
- CI: `ty`'s `invalid-method-override` diagnostic is treated as a warning to
41+
accommodate Django's CBV/consumer signature narrowing.
42+
43+
## [0.4.0b0] - 2026-03-01
44+
45+
### Added
46+
47+
- **Litestar adapter** (`[litestar]` optional extras group) — HTTP, WebSocket,
48+
and SSE support.
49+
- **Async event handlers**`async_dispatch()` / `async_handle_event()` for
50+
adapters running in an async context.
51+
- **SSE streaming**`StreamingComponent` with async-generator handlers for
52+
progressive rendering.
53+
- **State size guard** — configurable warning at 64 KB and a hard limit at
54+
512 KB on serialised component state.
55+
56+
### Fixed
57+
58+
- JS double-serialisation fix in `component-client.js`.
59+
860
## [0.3.0b0] - 2026-02-23
961

1062
### Breaking Changes

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Framework-agnostic server components with LiveView-style interactivity inspired
1414

1515
## Development Status
1616

17-
**Current Version:** 0.4.0-beta
17+
**Current Version:** 0.5.0-beta
1818
**API Documentation:** [fsecada01.github.io/component-framework](https://fsecada01.github.io/component-framework/)
1919

2020
The framework has a complete, tested feature set covering the full Beta roadmap. APIs are solidifying — the core lifecycle, permissions, composition, and testing utilities are stable. We welcome feedback before the 1.0 release.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "component-framework"
3-
version = "0.4.1b0"
3+
version = "0.5.0b0"
44
description = "Framework-agnostic server components with LiveView-style interactivity"
55
readme = "README.md"
66
requires-python = ">=3.11"

0 commit comments

Comments
 (0)