mirror of
https://github.com/openclaw/lobster.git
synced 2026-08-14 08:52:48 +00:00
chore: prepare 2026.4.6 release metadata (#61)
* chore: prepare 2026.4.6 release metadata * docs: finalize 2026.4.6 release notes
This commit is contained in:
@@ -111,6 +111,44 @@ jobs:
|
||||
|
||||
echo "Validated ${PACKAGE_NAME}@${PACKAGE_VERSION}"
|
||||
|
||||
- name: Validate changelog entry for release version
|
||||
env:
|
||||
RELEASE_TAG: ${{ inputs.tag }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
RELEASE_VERSION="${RELEASE_TAG#v}"
|
||||
node - <<'NODE'
|
||||
const fs = require('node:fs');
|
||||
|
||||
const releaseVersion = process.env.RELEASE_VERSION;
|
||||
const changelog = fs.readFileSync('CHANGELOG.md', 'utf8');
|
||||
const lines = changelog.split(/\r?\n/);
|
||||
const heading = `## ${releaseVersion}`;
|
||||
const start = lines.findIndex((line) => line.trim() === heading);
|
||||
|
||||
if (start === -1) {
|
||||
console.error(`CHANGELOG.md is missing a release section for ${releaseVersion}.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let hasBullet = false;
|
||||
for (let idx = start + 1; idx < lines.length; idx += 1) {
|
||||
const trimmed = lines[idx].trim();
|
||||
if (trimmed.startsWith('## ')) break;
|
||||
if (trimmed.startsWith('- ')) {
|
||||
hasBullet = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasBullet) {
|
||||
console.error(`CHANGELOG.md section ${heading} must contain at least one bullet item.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`Validated CHANGELOG.md section ${heading}`);
|
||||
NODE
|
||||
|
||||
- name: Ensure version is not already published
|
||||
env:
|
||||
PREFLIGHT_ONLY: ${{ inputs.preflight_only }}
|
||||
@@ -274,6 +312,44 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Validate changelog entry for release version
|
||||
env:
|
||||
RELEASE_TAG: ${{ inputs.tag }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
RELEASE_VERSION="${RELEASE_TAG#v}"
|
||||
node - <<'NODE'
|
||||
const fs = require('node:fs');
|
||||
|
||||
const releaseVersion = process.env.RELEASE_VERSION;
|
||||
const changelog = fs.readFileSync('CHANGELOG.md', 'utf8');
|
||||
const lines = changelog.split(/\r?\n/);
|
||||
const heading = `## ${releaseVersion}`;
|
||||
const start = lines.findIndex((line) => line.trim() === heading);
|
||||
|
||||
if (start === -1) {
|
||||
console.error(`CHANGELOG.md is missing a release section for ${releaseVersion}.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let hasBullet = false;
|
||||
for (let idx = start + 1; idx < lines.length; idx += 1) {
|
||||
const trimmed = lines[idx].trim();
|
||||
if (trimmed.startsWith('## ')) break;
|
||||
if (trimmed.startsWith('- ')) {
|
||||
hasBullet = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasBullet) {
|
||||
console.error(`CHANGELOG.md section ${heading} must contain at least one bullet item.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`Validated CHANGELOG.md section ${heading}`);
|
||||
NODE
|
||||
|
||||
- name: Ensure version is not already published
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
+10
-6
@@ -4,12 +4,16 @@ All notable changes to Lobster will be documented in this file.
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Add workflow file runner for `.lobster`/YAML/JSON workflows with args, env, conditions, and approval gates.
|
||||
- Add compact workflow resume tokens backed by Lobster state storage.
|
||||
- Add `exec --stdin raw|json|jsonl` to pipe workflow output into subprocess stdin.
|
||||
- Add `approve --preview-from-stdin --limit N` for approval previews without extra glue.
|
||||
- Add `openclaw.invoke --each` to map pipeline input items into tool calls. (`clawd.invoke` remains supported as an alias.)
|
||||
- Extend CLI to run workflow files with `lobster run <file>` or `--file` + `--args-json`.
|
||||
## 2026.4.6
|
||||
|
||||
- Add workflow file support for `.lobster`/YAML/JSON files, including args, env, native pipeline steps, and shell-safe `LOBSTER_ARG_*` workflow args.
|
||||
- Export the embeddable core runtime via `@clawdbot/lobster/core` so Lobster can be loaded in-process by OpenClaw and other hosts.
|
||||
- Add compact state-backed workflow and pipeline resume tokens, plus hardened approval ID handling and safer resume validation.
|
||||
- Add structured input pauses with `ask`, workflow `input`, `needs_input`, and `lobster resume --response-json '{...}'`.
|
||||
- Add richer workflow condition expressions with `!`, `==`, `!=`, `&&`, `||`, and parentheses.
|
||||
- Add generic `llm.invoke` adapters, `openclaw.invoke --each`, and keep `clawd.invoke` as a supported alias.
|
||||
- Add `exec --stdin raw|json|jsonl`, `approve --preview-from-stdin --limit N`, and extensive dry-run hardening for workflow templates and shell-variable preservation.
|
||||
- Improve Windows compatibility for CLI startup/build scripts and fix quoted-argument parser edge cases.
|
||||
|
||||
## 2026.1.21-1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user