Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ This repository contains independently versioned Open WebUI extensions. Plugin-s

## 2026-09-18

### Documentation and release metadata

Brought every extension up to the same documentation and release standard.

- added the missing changelogs for the RAGFlow Advanced Connector and Secure Dynamic Onboarding, so all five extensions now keep one beside the implementation;
- rewrote the existing changelogs onto the section names from the release-notes template (`Added`, `Changed`, `Fixed`, `Security`, `Compatibility`, `Upgrade notes`) under dated `## [version]` headings;
- expanded the RAGFlow README with its Tool methods, a complete Valve reference with defaults and ranges, the data flow, and known limitations;
- added a Changelog section to each extension README, and a changelog column or link to the Tool, Filter, Action and Event category indexes;
- corrected the Quick Actions version in the Action index from 3.0.0 to 3.0.1;
- added a per-extension changelog table to the root README;
- required a `CHANGELOG.md` beside every implementation in CONTRIBUTING.md, with the section names it should use;
- replaced the stale tag list in RELEASING.md with a published-release table, annotated-tag instructions, and the rule that a tag points at the commit where that version's source last changed.

### Secure Dynamic Onboarding 9.1.0

Added a bilingual, role-aware Event Function that creates and maintains one persistent onboarding chat per eligible user. The release includes an interactive guided tour, a permission-filtered feature library, exact composer and navigation tutorials, Notes, Folders, Channels, Calendar and Automations guidance, safe test-user rollout, signup and first-login delivery, idempotent batch deployment, in-place guide revisions, deleted-guide handling, Redis locking, restrictive iframe CSP, disclosure controls, Python tests, and a full DOM smoke test.
Expand Down
5 changes: 4 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,18 @@ Each implementation should include at least:

```text
README.md
CHANGELOG.md
<plugin_name>.py
```

The changelog uses the section names from the [release notes template](RELEASING.md#release-notes-template): `Added`, `Changed`, `Fixed`, `Security`, `Compatibility` and `Upgrade notes`, under a `## [MAJOR.MINOR.PATCH] - YYYY-MM-DD` heading, newest first. Omit a section that has nothing in it, and omit the date for a version released before it entered this repository.

## Before opening a pull request

Check that the extension:

- has clear Open WebUI metadata at the top of the Python file;
- declares a semantic version;
- declares a semantic version that matches its README and changelog;
- documents the minimum Open WebUI version when relevant;
- avoids hard-coded API keys, passwords, tokens, private endpoints, and personal data;
- uses Valves or environment-backed configuration for deployment-specific values;
Expand Down
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ The goal is simple: keep each extension portable, documented, and safe to review
│ │ └── unpack_source.py
│ └── ragflow/
│ ├── README.md
│ ├── CHANGELOG.md
│ └── ragflow.py
│
└── functions/
Expand Down Expand Up @@ -137,7 +138,17 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for the extension structure, documentatio

## Changelog

Repository-level changes are tracked in [CHANGELOG.md](CHANGELOG.md). Extensions may also keep their own changelog beside the implementation.
Repository-level changes are tracked in [CHANGELOG.md](CHANGELOG.md).

Every extension also keeps its own changelog beside the implementation:

| Extension | Changelog | Latest |
| --- | --- | --- |
| Rich Email Composer | [tools/email-composer/CHANGELOG.md](tools/email-composer/CHANGELOG.md) | `email-composer-v1.0.0` |
| RAGFlow Advanced Connector | [tools/ragflow/CHANGELOG.md](tools/ragflow/CHANGELOG.md) | `ragflow-v3.0.0` |
| Study Mode | [functions/filters/study-mode/CHANGELOG.md](functions/filters/study-mode/CHANGELOG.md) | `study-mode-v1.1.0` |
| Quick Actions | [functions/actions/quick-actions/CHANGELOG.md](functions/actions/quick-actions/CHANGELOG.md) | `quick-actions-v3.0.1` |
| Secure Dynamic Onboarding | [functions/events/secure-onboarding/CHANGELOG.md](functions/events/secure-onboarding/CHANGELOG.md) | `secure-onboarding-v9.1.0` |

## License

Expand Down
34 changes: 26 additions & 8 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,19 @@ Before publishing a version:

1. Update the plugin metadata version in the Python file.
2. Update the plugin README if behavior, configuration, or compatibility changed.
3. Add an entry to the plugin changelog when one exists.
3. Add an entry to the plugin changelog. Every extension keeps one beside its implementation; see the section names in the template below.
4. Confirm no secrets, private endpoints, personal data, or deployment-specific identifiers were added.
5. Test the extension on the minimum documented Open WebUI version and, when practical, the current release.
6. Test at least one model with native tool calling and one plain text model when the plugin claims model-independent behavior.
7. Merge the release changes into `main`.
8. Create a Git tag using the plugin-specific format below.
9. Optionally create a GitHub Release from that tag with the changelog entry as release notes.
8. Create an annotated Git tag using the plugin-specific format below, carrying the changelog entry as its message:

```bash
git tag -a <plugin-name>-v<version> <commit> -F notes.md
git push origin <plugin-name>-v<version>
```

9. Publish a GitHub Release from that tag with the same notes, and add it to the table below.

## Tag naming

Expand All @@ -24,12 +30,19 @@ Use:
<plugin-name>-v<version>
```

Current recommended tags:
## Published releases

```text
study-mode-v1.0.0
ragflow-v3.0.0
```
| Extension | Version | Tag | Released |
| --- | --- | --- | --- |
| [Secure Dynamic Onboarding](functions/events/secure-onboarding/) | 9.1.0 | `secure-onboarding-v9.1.0` | 2026-09-18 |
| [Rich Email Composer](tools/email-composer/) | 1.0.0 | `email-composer-v1.0.0` | 2026-09-11 |
| [Study Mode](functions/filters/study-mode/) | 1.1.0 | `study-mode-v1.1.0` | 2026-08-28 |
| [Quick Actions](functions/actions/quick-actions/) | 3.0.1 | `quick-actions-v3.0.1` | 2026-08-28 |
| [RAGFlow Advanced Connector](tools/ragflow/) | 3.0.0 | `ragflow-v3.0.0` | 2026-08-26 |

Superseded tags stay in place: `study-mode-v1.0.0` and `quick-actions-v3.0.0`.

From `study-mode-v1.1.0` onward, a tag points at the commit where that version's Python file last changed, so the tag resolves to the code that was released rather than to a later documentation commit. The two tags above predate this rule: `quick-actions-v3.0.0` happens to follow it, `study-mode-v1.0.0` points at that release's final documentation commit.

This avoids collisions between independently versioned extensions in the same repository.

Expand Down Expand Up @@ -68,9 +81,14 @@ Keep repository topics broad. Use plugin-specific tags in each plugin README for
### Fixed
- ...

### Security
- ...

### Compatibility
- Open WebUI: ...

### Upgrade notes
- ...
```

The plugin changelog uses the same sections under a `## [<version>] - YYYY-MM-DD` heading. Omit any section with nothing in it.
4 changes: 2 additions & 2 deletions functions/actions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ Typical uses include:

## Available Actions

| Action | Version | Status | Purpose |
| Action | Version | Changelog | Purpose |
| --- | --- | --- | --- |
| [Quick Actions](quick-actions/) | 3.0.0 | Stable | Compact context-aware response transformations, Humanize actions, verification, creation workflows, English/French UI, and user/team custom actions |
| [Quick Actions](quick-actions/) | 3.0.1 | [CHANGELOG](quick-actions/CHANGELOG.md) | Compact context-aware response transformations, Humanize actions, verification, creation workflows, English/French UI, and user/team custom actions |

## Directory convention

Expand Down
59 changes: 44 additions & 15 deletions functions/actions/quick-actions/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,50 @@
# Changelog
# Quick Actions Changelog

## 3.0.1
All notable changes to Quick Actions are documented here.
This project follows [Semantic Versioning](https://semver.org/).

- Fixed the toolbar icon becoming difficult to see in Open WebUI dark/OLED themes.
- Replaced the monochrome external icon with a theme-independent hosted Quick Actions icon that remains visible in light and dark mode.
Released as `quick-actions-v<version>`. See [RELEASING.md](../../../RELEASING.md) for the release process.

## 3.0.0
## [3.0.1] - 2026-08-28

### Fixed

- The toolbar icon becoming difficult to see in Open WebUI dark and OLED themes.

### Changed

- Replaced the monochrome external icon with a theme-independent hosted Quick Actions icon that stays visible in light and dark mode.

## [3.0.0] - 2026-08-28

First public Action Function in this repository.

### Added

- Humanize section with five writing transformations.
- Complete English and French built-in UI and prompt catalogs.
- Admin language default and per-user language override.
- Action-specific inline SVG icons.
- Named custom inputs using `{input:Label}`.

### Changed

- Added Humanize section with five writing transformations.
- Added complete English/French built-in UI and prompt catalogs.
- Added admin language default and user language override.
- Replaced many admin section toggles with one native multiselect.
- Replaced user code/data/study toggles with a native hidden-sections multiselect.
- Added action-specific inline SVG icons.
- Replaced the user code, data, and study toggles with a native hidden-sections multiselect.
- Reduced menu density and moved Explore into More.
- Improved light/dark/system/high-contrast/reduced-motion behavior.
- Added named custom inputs using `{input:Label}`.
- Changed compact-menu failure fallback to look like an intentional custom instruction.
- Fixed intentional menu cancel so it no longer opens the fallback input dialog.
- Preserved safe preview mode, draft protection, concurrency cancellation, timeout cleanup, and older-message targeting.
- Improved light, dark, system, high-contrast, and reduced-motion behavior.
- Changed the compact-menu failure fallback to look like an intentional custom instruction.

### Fixed

- Intentional menu cancel no longer opens the fallback input dialog.

### Compatibility

- Open WebUI 0.11.1 or newer.
- Function type: Action (`Action` class).
- No extra Python packages, and no direct LLM or API call from the Action itself.

### Upgrade notes

- Safe preview mode, draft protection, concurrency cancellation, timeout cleanup, and older-message targeting are preserved from earlier releases.
8 changes: 8 additions & 0 deletions functions/actions/quick-actions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,11 @@ Before release, the implementation was checked for:
## Upgrade notes from v2

v3 intentionally replaces the many `show_*` category Valves with a single **Enabled sections** multiselect. Existing `team_actions` and `my_actions` syntax remains compatible. If upgrading from v2, review the Function Valves once after saving v3 because the category configuration schema changed.

## Changelog

See [CHANGELOG.md](CHANGELOG.md). Released as `quick-actions-v3.0.1`; see [RELEASING.md](../../../RELEASING.md) for the release process.

## License

Released under the repository's [MIT License](../../../LICENSE).
2 changes: 1 addition & 1 deletion functions/events/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ events/

Creates one persistent, bilingual onboarding chat per eligible user. The Rich UI guide is filtered by effective permissions, accessible Tools and models, global feature flags, role, and administrator Valves. It supports controlled testing, signup and first-login delivery, in-place content updates, idempotent batch deployment, Redis locking, and user-respected deletion behavior.

See [secure-onboarding/README.md](secure-onboarding/README.md) for installation, rollout, privacy, security, Valves, testing, and troubleshooting.
See [secure-onboarding/README.md](secure-onboarding/README.md) for installation, rollout, privacy, security, Valves, testing, and troubleshooting, and [secure-onboarding/CHANGELOG.md](secure-onboarding/CHANGELOG.md) for the release history.
30 changes: 26 additions & 4 deletions functions/events/secure-onboarding/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,61 @@
# Changelog
# Secure Dynamic Onboarding Changelog

All notable changes to the Secure Dynamic Onboarding Event Function.
All notable changes to the Secure Dynamic Onboarding Event Function are documented here.
This project follows [Semantic Versioning](https://semver.org/).

## [9.1.0]
Released as `secure-onboarding-v<version>`. See [RELEASING.md](../../../RELEASING.md) for the release process.

## [9.1.0] - 2026-09-18

First version published in this repository.

### Fixed

- Redis commands reconnect and retry once when an idle socket is dropped, instead of falling back to process-local locking on the first `BrokenPipeError`.
- Connections are opened with `health_check_interval=30` when the running Open WebUI build supports it.
- A dropped connection is logged as a single INFO line instead of a full traceback.

### Changed

- Connections are opened with `health_check_interval=30` when the running Open WebUI build supports it.

### Compatibility

- Open WebUI 0.11.3 or newer.
- Function type: Event (`Event` class).

## [9.0.0]

### Added

- Delivery controls: `create_on_signup`, `create_on_first_login`, `skip_pending_users`, `include_admins`, `deploy_to_all_users`, `deployment_revision`, `recreate_deleted_guides`.
- Background deployment in batches, resumable and idempotent per revision.
- Content versioning with `guide_revision`, in-place updates, and a one-time "guide updated" banner with optional release notes.
- One on/off valve per section (33 switches), plus the Features tab, language switch and example buttons.
- Welcome chat options: emoji, title templates, pinning, per-user interface language.

### Changed

- All valves and their descriptions are in English.
- Features are resolved server-side from the instance switch AND the user permission; an unreadable permission source hides the feature instead of allowing it.

## [8.0.0]

### Added

- Cover page with key facts and a clickable table of contents.
- Chapters for the user menu, Calendar, Automations, built-in tools and administration.

### Changed

- Font set to Arial with a system fallback.

## [7.0.0]

### Added

- Interactive mocks of the real chat screens: + menu with sub-lists, Integrations, model selector, response actions, feedback forms, sidebar, Notes, folders and channels.
- "Features" tab listing every capability available to the account, each with a pop-up tutorial.

---

Releases 7.0.0 through 9.0.0 predate this repository, so they carry no publication date.
4 changes: 4 additions & 0 deletions functions/events/secure-onboarding/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,10 @@ Increase **guide_revision**. For immediate rollout, also increase **deployment_r

Configure shared Redis. Process-local fallback cannot coordinate separate processes.

## Changelog

See [CHANGELOG.md](CHANGELOG.md). Released as `secure-onboarding-v9.1.0`; see [RELEASING.md](../../../RELEASING.md) for the release process.

## License

Released under the repository’s [MIT License](../../../LICENSE).
5 changes: 4 additions & 1 deletion functions/filters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ A Filter can use:
filters/
└── filter-name/
├── README.md
├── CHANGELOG.md
└── filter_name.py
```

## Included filters

- [Study Mode](study-mode/) - adaptive tutoring and interactive learning for existing models.
| Filter | Version | Changelog | Purpose |
| --- | --- | --- | --- |
| [Study Mode](study-mode/) | 1.1.0 | [CHANGELOG](study-mode/CHANGELOG.md) | Adaptive tutoring and interactive learning for existing models |
Loading
Loading