@elvatis_com/openclaw-cli-bridge-elvatis 1.9.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai/handoff/NEXT_ACTIONS.md +4 -1
- package/.ai/handoff/STATUS.md +55 -50
- package/.github/ISSUE_TEMPLATE/bug_report.md +19 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +11 -0
- package/.github/dependabot.yml +11 -0
- package/.github/workflows/auto-publish.yml +68 -0
- package/.github/workflows/codeql.yml +40 -0
- package/CODE_OF_CONDUCT.md +38 -0
- package/CONTRIBUTING.md +15 -108
- package/LICENSE +216 -0
- package/README.md +37 -7
- package/SECURITY.md +17 -0
- package/index.ts +28 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +4 -3
- package/src/cli-runner.ts +178 -19
- package/src/codex-auth-import.ts +127 -0
- package/src/grok-client.ts +1 -1
- package/src/proxy-server.ts +145 -22
- package/src/session-manager.ts +346 -0
- package/src/workdir.ts +108 -0
- package/test/chatgpt-proxy.test.ts +2 -2
- package/test/claude-proxy.test.ts +2 -2
- package/test/cli-runner-extended.test.ts +267 -0
- package/test/codex-auth-import.test.ts +244 -0
- package/test/grok-proxy.test.ts +2 -2
- package/test/proxy-e2e.test.ts +274 -2
- package/test/session-manager.test.ts +446 -0
- package/test/workdir.test.ts +152 -0
|
@@ -7,7 +7,7 @@ _Last updated: 2026-03-13_
|
|
|
7
7
|
|
|
8
8
|
| Status | Count |
|
|
9
9
|
|---------|-------|
|
|
10
|
-
| Done |
|
|
10
|
+
| Done | 16 |
|
|
11
11
|
| Ready | 0 |
|
|
12
12
|
| Blocked | 0 |
|
|
13
13
|
<!-- /SECTION: summary -->
|
|
@@ -30,6 +30,9 @@ _No blocked tasks._
|
|
|
30
30
|
|
|
31
31
|
| Task | Title | Date |
|
|
32
32
|
|-------|--------------------------------------------------------------------|------------|
|
|
33
|
+
| T-016 | Issue #2: Codex auth auto-import into agent auth store | 2026-03-19 |
|
|
34
|
+
| T-015 | Issue #4: Background session mgmt with workdir isolation | 2026-03-19 |
|
|
35
|
+
| T-014 | Issue #6: Workdir isolation (createIsolatedWorkdir, cleanup, sweep) | 2026-03-19 |
|
|
33
36
|
| T-013 | Fix cookie expiry tracking — longest-lived auth cookie (all 4) | 2026-03-13 |
|
|
34
37
|
| T-012 | Persistent browser fallback for Claude/Gemini/ChatGPT (no CDP) | 2026-03-12 |
|
|
35
38
|
| T-011 | Session-safe staged model switching (/cli-apply, /cli-pending) | 2026-03-11 |
|
package/.ai/handoff/STATUS.md
CHANGED
|
@@ -1,55 +1,60 @@
|
|
|
1
1
|
# STATUS — openclaw-cli-bridge-elvatis
|
|
2
2
|
|
|
3
|
-
## Current Version: 1.
|
|
3
|
+
## Current Version: 2.1.0
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
|
11
|
-
|
|
5
|
+
- **npm:** @elvatis_com/openclaw-cli-bridge-elvatis (not yet published to npm)
|
|
6
|
+
- **ClawHub:** openclaw-cli-bridge-elvatis@1.9.2
|
|
7
|
+
- **GitHub:** https://github.com/elvatis/openclaw-cli-bridge-elvatis/releases/tag/v1.9.2
|
|
8
|
+
|
|
9
|
+
## CLI Model Token Limits (corrected in v1.9.2)
|
|
10
|
+
| Model | Context Window | Max Output |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| Claude Opus 4.6 (CLI) | 1,000,000 | 128,000 |
|
|
13
|
+
| Claude Sonnet 4.6 (CLI) | 1,000,000 | 64,000 |
|
|
14
|
+
| Claude Haiku 4.5 (CLI) | 200,000 | 64,000 |
|
|
15
|
+
| Gemini 2.5 Pro (CLI) | 1,048,576 | 65,535 |
|
|
16
|
+
| Gemini 2.5 Flash (CLI) | 1,048,576 | 65,535 |
|
|
17
|
+
| Gemini 3 Pro Preview (CLI) | 1,048,576 | 65,536 |
|
|
18
|
+
| Gemini 3 Flash Preview (CLI) | 1,048,576 | 65,536 |
|
|
19
|
+
|
|
20
|
+
## Architecture
|
|
21
|
+
- **Proxy server:** `http://127.0.0.1:31337/v1` (OpenAI-compatible)
|
|
22
|
+
- **OpenClaw connects via** `vllm` provider with `api: openai-completions`
|
|
23
|
+
- **CLI models** (`cli-claude/*`, `cli-gemini/*`): plain text completions only — NO tool/function call support
|
|
24
|
+
- **Web-session models** (`web-grok/*`, `web-gemini/*`): browser-based, require `/xxx-login`
|
|
25
|
+
- **Codex models** (`openai-codex/*`): OAuth auth bridge
|
|
26
|
+
- **BitNet** (`local-bitnet/*`): local CPU inference
|
|
27
|
+
|
|
28
|
+
## Tool Support Limitation
|
|
29
|
+
CLI models explicitly reject tool/function call requests (HTTP 400):
|
|
30
|
+
```
|
|
31
|
+
Model cli-claude/claude-opus-4-6 does not support tool/function calls.
|
|
32
|
+
Use a native API model (e.g. github-copilot/gpt-5-mini) for agents that need tools.
|
|
33
|
+
```
|
|
34
|
+
This is by design — CLI tools output plain text only.
|
|
35
|
+
|
|
36
|
+
## All 4 Browser Providers
|
|
37
|
+
| Provider | Models | Login Cmd | Profile Dir |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| Grok | web-grok/grok-3, grok-3-fast, grok-3-mini, grok-3-mini-fast | /grok-login | ~/.openclaw/grok-profile/ |
|
|
40
|
+
| Gemini | web-gemini/gemini-2-5-pro, gemini-2-5-flash, gemini-3-pro, gemini-3-flash | /gemini-login | ~/.openclaw/gemini-profile/ |
|
|
41
|
+
| Claude | web-claude/* (removed in v1.6.x) | /claude-login | ~/.openclaw/claude-profile/ |
|
|
42
|
+
| ChatGPT | web-chatgpt/* (removed in v1.6.x) | /chatgpt-login | ~/.openclaw/chatgpt-profile/ |
|
|
12
43
|
|
|
13
44
|
## Stats
|
|
14
|
-
- 22 total models (
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Cookie Expiry Tracking (fixed in v1.7.3)
|
|
32
|
-
All 4 providers now track the **longest-lived** auth cookie instead of the shortest:
|
|
33
|
-
- Claude: `sessionKey` (~1 year) — was `__cf_bm` (Cloudflare, ~30 min) causing false alerts
|
|
34
|
-
- ChatGPT: longest of `__Secure-next-auth.session-token` / `_puid` / `oai-did`
|
|
35
|
-
- Gemini: longest of `__Secure-1PSID` / `__Secure-3PSID` / `SID`
|
|
36
|
-
- Grok: longest of `sso` / `sso-rw`
|
|
37
|
-
|
|
38
|
-
## Release History
|
|
39
|
-
- v1.7.3 (2026-03-13): Fix cookie expiry tracking — use longest-lived auth cookie for all 4 providers
|
|
40
|
-
- v1.7.2 (2026-03-13): Cookie-first startup restore (skip fragile browser selector check)
|
|
41
|
-
- v1.7.1 (2026-03-13): /status HTML dashboard at :31337
|
|
42
|
-
- v1.7.0 (2026-03-13): Startup restore timeout fix, auto-relogin, keep-alive verification, vitest suite
|
|
43
|
-
- v1.6.1 (2026-03-13): Fix /bridge-status — use cookie expiry as source of truth
|
|
44
|
-
- v1.6.0 (2026-03-13): Persistent Chromium profiles for all 4 providers (Claude web + ChatGPT)
|
|
45
|
-
- v1.5.1 (2026-03-12): Fix hardcoded plugin version
|
|
46
|
-
- v1.5.0 (2026-03-12): Remove /claude-login and /chatgpt-login (pre-v1.6.0 interim)
|
|
47
|
-
- v1.4.0 (2026-03-12): Persistent browser fallback for Claude/Gemini/ChatGPT (no CDP required)
|
|
48
|
-
- v1.3.5 (2026-03-12): Startup restore guard (SIGUSR1 OOM fix)
|
|
49
|
-
- v1.3.0 (2026-03-11): Browser auto-reconnect after gateway restart
|
|
50
|
-
- v1.0.0 (2026-03-11): All 4 providers headless — 96/96 tests
|
|
51
|
-
|
|
52
|
-
## Next Steps
|
|
53
|
-
- /chatgpt-login should be re-run soon (~6d left on _puid cookie)
|
|
54
|
-
- Gemini model switching via UI (2.5 Pro vs Flash vs 3)
|
|
55
|
-
- Context-window management for long conversations
|
|
45
|
+
- 22+ total models (7 CLI + 5 Codex + 4 Grok + 4 Gemini + 1 BitNet)
|
|
46
|
+
- Persistent Chromium profiles survive gateway restarts
|
|
47
|
+
- /bridge-status shows cookie-based status
|
|
48
|
+
|
|
49
|
+
## Release History (recent)
|
|
50
|
+
- v2.1.0 (2026-03-19): Issue #6 workdir isolation, Issue #4 session mgmt enhancements, Issue #2 codex auth auto-import
|
|
51
|
+
- v2.0.0: Major version bump
|
|
52
|
+
- v1.9.2 (2026-03-15): Fix maxTokens/contextWindow for all CLI_MODELS (were 8192, now correct per vendor specs)
|
|
53
|
+
- v1.9.1: Previous stable
|
|
54
|
+
- v1.7.3 (2026-03-13): Fix cookie expiry tracking
|
|
55
|
+
- v1.7.0 (2026-03-13): Startup restore timeout fix, auto-relogin, vitest suite
|
|
56
|
+
- v1.6.0 (2026-03-13): Persistent Chromium profiles for all 4 providers
|
|
57
|
+
|
|
58
|
+
## Known Issues
|
|
59
|
+
- CLI models cannot do tool calls (by design — plain text proxy)
|
|
60
|
+
- Opus via CLI proxy may halluzinate XML tool-call tags when maxTokens was too low (fixed in v1.9.2)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug to help us improve
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Describe the bug**
|
|
8
|
+
A clear description of what the bug is.
|
|
9
|
+
|
|
10
|
+
**To Reproduce**
|
|
11
|
+
Steps to reproduce:
|
|
12
|
+
1. ...
|
|
13
|
+
2. ...
|
|
14
|
+
|
|
15
|
+
**Expected behavior**
|
|
16
|
+
What you expected to happen.
|
|
17
|
+
|
|
18
|
+
**Additional context**
|
|
19
|
+
Any other context about the problem.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Is your feature request related to a problem?**
|
|
8
|
+
Describe the problem.
|
|
9
|
+
|
|
10
|
+
**Describe the solution you'd like**
|
|
11
|
+
What you want to happen.
|
|
12
|
+
|
|
13
|
+
**Additional context**
|
|
14
|
+
Any other context or screenshots.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: Auto-Publish (npm + ClawHub)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
publish-npm:
|
|
12
|
+
name: Publish to npm
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: 22
|
|
21
|
+
registry-url: "https://registry.npmjs.org"
|
|
22
|
+
|
|
23
|
+
- run: npm ci --ignore-scripts
|
|
24
|
+
|
|
25
|
+
- name: Build (if script exists)
|
|
26
|
+
run: npm run build --if-present || true
|
|
27
|
+
|
|
28
|
+
- name: Verify version matches tag
|
|
29
|
+
run: |
|
|
30
|
+
PKG_VERSION=$(node -p "require('./package.json').version")
|
|
31
|
+
TAG_VERSION="${GITHUB_REF_NAME#v}"
|
|
32
|
+
if [ "$PKG_VERSION" != "$TAG_VERSION" ]; then
|
|
33
|
+
echo "::error::package.json version ($PKG_VERSION) != tag ($TAG_VERSION)"
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
- name: Publish to npm
|
|
38
|
+
run: npm publish --access public
|
|
39
|
+
env:
|
|
40
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
41
|
+
|
|
42
|
+
publish-clawhub:
|
|
43
|
+
name: Publish to ClawHub
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
needs: publish-npm
|
|
46
|
+
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v4
|
|
49
|
+
|
|
50
|
+
- uses: actions/setup-node@v4
|
|
51
|
+
with:
|
|
52
|
+
node-version: 22
|
|
53
|
+
|
|
54
|
+
- run: npm install -g clawhub
|
|
55
|
+
|
|
56
|
+
- name: Authenticate and publish
|
|
57
|
+
run: |
|
|
58
|
+
SLUG=$(node -p "require('./package.json').name.replace('@elvatis_com/', '')")
|
|
59
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
60
|
+
TMPDIR=$(mktemp -d)/$SLUG
|
|
61
|
+
mkdir -p "$TMPDIR"
|
|
62
|
+
rsync -a --exclude=node_modules --exclude=.git --exclude=dist --exclude=package-lock.json --exclude=.github ./ "$TMPDIR/"
|
|
63
|
+
clawhub login --token "$CLAWHUB_TOKEN" --no-browser
|
|
64
|
+
clawhub publish "$TMPDIR" --slug "$SLUG" --version "$VERSION"
|
|
65
|
+
rm -rf "$(dirname $TMPDIR)"
|
|
66
|
+
env:
|
|
67
|
+
CLAWHUB_TOKEN: ${{ secrets.CLAWHUB_TOKEN }}
|
|
68
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: "CodeQL"
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main, master]
|
|
5
|
+
pull_request:
|
|
6
|
+
branches: [main, master]
|
|
7
|
+
schedule:
|
|
8
|
+
- cron: "0 4 * * 1"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
analyze:
|
|
12
|
+
name: Analyze
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
permissions:
|
|
15
|
+
actions: read
|
|
16
|
+
contents: read
|
|
17
|
+
security-events: write
|
|
18
|
+
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
language: ["javascript-typescript"]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
|
|
28
|
+
- name: Initialize CodeQL
|
|
29
|
+
uses: github/codeql-action/init@v3
|
|
30
|
+
with:
|
|
31
|
+
languages: ${{ matrix.language }}
|
|
32
|
+
|
|
33
|
+
- name: Autobuild
|
|
34
|
+
uses: github/codeql-action/autobuild@v3
|
|
35
|
+
|
|
36
|
+
- name: Perform CodeQL Analysis
|
|
37
|
+
uses: github/codeql-action/analyze@v3
|
|
38
|
+
with:
|
|
39
|
+
category: "/language:${{ matrix.language }}"
|
|
40
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our
|
|
6
|
+
community a harassment-free experience for everyone, regardless of age, body
|
|
7
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
8
|
+
identity and expression, level of experience, education, socio-economic status,
|
|
9
|
+
nationality, personal appearance, race, caste, color, religion, or sexual
|
|
10
|
+
identity and orientation.
|
|
11
|
+
|
|
12
|
+
## Our Standards
|
|
13
|
+
|
|
14
|
+
Examples of behavior that contributes to a positive environment:
|
|
15
|
+
|
|
16
|
+
- Using welcoming and inclusive language
|
|
17
|
+
- Being respectful of differing viewpoints and experiences
|
|
18
|
+
- Gracefully accepting constructive criticism
|
|
19
|
+
- Focusing on what is best for the community
|
|
20
|
+
- Showing empathy towards other community members
|
|
21
|
+
|
|
22
|
+
Examples of unacceptable behavior:
|
|
23
|
+
|
|
24
|
+
- The use of sexualized language or imagery and unwelcome sexual attention
|
|
25
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
26
|
+
- Public or private harassment
|
|
27
|
+
- Publishing others' private information without explicit permission
|
|
28
|
+
|
|
29
|
+
## Enforcement
|
|
30
|
+
|
|
31
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
32
|
+
reported to the project team at **conduct@elvatis.com**. All complaints will
|
|
33
|
+
be reviewed and investigated promptly and fairly.
|
|
34
|
+
|
|
35
|
+
## Attribution
|
|
36
|
+
|
|
37
|
+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
|
|
38
|
+
version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct/
|
package/CONTRIBUTING.md
CHANGED
|
@@ -1,116 +1,23 @@
|
|
|
1
|
-
# Contributing
|
|
1
|
+
# Contributing
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Thanks for your interest in contributing!
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Getting Started
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
1. Fork the repository and create a feature branch from `main`.
|
|
8
|
+
2. Install dependencies (if applicable): `npm ci`
|
|
9
|
+
3. Run tests (if applicable): `npm test`
|
|
10
|
+
4. Keep changes focused and small.
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
npm run lint # ESLint — 0 errors required, warnings ok
|
|
11
|
-
npm run build # Exit 0 erwartet — TS-Fehler sind ok (--noEmitOnError false), aber Exit != 0 blockiert
|
|
12
|
-
```
|
|
12
|
+
## Pull Request Process
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
1. Open a Pull Request against `main` with a clear description.
|
|
15
|
+
2. Link any relevant issues.
|
|
16
|
+
3. Ensure tests pass and documentation is updated.
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
openclaw gateway restart
|
|
18
|
-
# oder via Chat: gateway restart
|
|
19
|
-
```
|
|
18
|
+
## Code Style
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
- Follow existing patterns in the codebase.
|
|
21
|
+
- No em dashes in comments or documentation.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
/bridge-status → Grok ✅ + Gemini ✅ (beide connected, nicht "not connected")
|
|
25
|
-
/cli-test → CLI bridge OK, Latency < 10s
|
|
26
|
-
/grok-status → valid (Cookie-Expiry prüfen)
|
|
27
|
-
/gemini-status → valid (Cookie-Expiry prüfen)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Erst wenn alle Tests grün sind → publishen!**
|
|
31
|
-
|
|
32
|
-
### 4. Publish (Reihenfolge einhalten)
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# 1. Version bump in package.json + openclaw.plugin.json (beide!)
|
|
36
|
-
# 2. Git commit + tag
|
|
37
|
-
git add package.json openclaw.plugin.json
|
|
38
|
-
git commit -m "chore: bump to vX.Y.Z — <kurze Beschreibung>"
|
|
39
|
-
git tag vX.Y.Z
|
|
40
|
-
git push origin main vX.Y.Z
|
|
41
|
-
|
|
42
|
-
# 3. GitHub Release erstellen (Tag ≠ Release!)
|
|
43
|
-
gh release create vX.Y.Z --title "vX.Y.Z — <Titel>" --notes "<Notes>" --latest
|
|
44
|
-
|
|
45
|
-
# 4. npm publish
|
|
46
|
-
npm publish --access public
|
|
47
|
-
|
|
48
|
-
# 5. ClawHub publish (aus tmp-Dir, nicht direkt aus Repo)
|
|
49
|
-
TMPDIR=$(mktemp -d)
|
|
50
|
-
rsync -a --exclude='node_modules' --exclude='.git' --exclude='dist' \
|
|
51
|
-
--exclude='package-lock.json' --exclude='test' ./ "$TMPDIR/"
|
|
52
|
-
clawhub publish "$TMPDIR" --slug openclaw-cli-bridge-elvatis --version X.Y.Z \
|
|
53
|
-
--tags "latest" --changelog "<Changelog>"
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
> ⚠️ **ClawHub Bug (CLI v0.7.0):** `acceptLicenseTerms: invalid value` — Workaround: `publish.js` vor dem Publish patchen und danach zurücksetzen. Details in AGENTS.md / MEMORY.md des Workspaces.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Versionsstellen — alle prüfen vor Release
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
grep -rn "X\.Y\.Z\|version" \
|
|
64
|
-
--include="*.md" --include="*.json" \
|
|
65
|
-
--exclude-dir=node_modules --exclude-dir=dist --exclude-dir=.git \
|
|
66
|
-
| grep -i "version"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Typische Stellen:
|
|
70
|
-
- `package.json` → `"version": "..."` (Hauptquelle — `index.ts` liest automatisch daraus)
|
|
71
|
-
- `openclaw.plugin.json` → `"version": "..."`
|
|
72
|
-
- `README.md` → `**Current version:** ...` (falls vorhanden)
|
|
73
|
-
|
|
74
|
-
> **Seit v1.9.0:** `index.ts` liest die Version automatisch aus `package.json` — kein manuelles Sync mehr nötig für die Runtime-Version.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Breaking Changes
|
|
79
|
-
|
|
80
|
-
Bei Breaking Changes (Major oder entfernte Commands):
|
|
81
|
-
- Version-Bump auf nächste **Minor** (z.B. 1.4.x → 1.5.0)
|
|
82
|
-
- GitHub Release Notes: `## ⚠️ Breaking Change` Sektion
|
|
83
|
-
- README Changelog: Was wurde entfernt + warum
|
|
84
|
-
- `/bridge-status` muss die entfernten Provider NICHT mehr zeigen
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## TS-Build-Fehler
|
|
89
|
-
|
|
90
|
-
Die folgenden TS-Fehler sind bekannt und ignorierbar (kein Runtime-Problem):
|
|
91
|
-
- `TS2307: Cannot find module 'openclaw/plugin-sdk'` — Typ-Deklarationen fehlen in npm-Paket
|
|
92
|
-
- `TS2339: Property 'handler' does not exist on type 'unknown'` — folgt aus TS2307
|
|
93
|
-
- `TS7006: Parameter implicitly has 'any' type` — minor, kein Effekt
|
|
94
|
-
|
|
95
|
-
Build läuft mit `--noEmitOnError false` durch. `npm run build` → Exit 0 ist das Kriterium, nicht null TS-Fehler.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Cookie Expiry Store (seit v1.9.0)
|
|
100
|
-
|
|
101
|
-
Cookie-Expiry-Daten werden jetzt in **einer** Datei gespeichert:
|
|
102
|
-
- `~/.openclaw/cookie-expiry.json` — enthält alle 4 Provider (grok, gemini, claude, chatgpt)
|
|
103
|
-
|
|
104
|
-
Legacy-Dateien (`grok-cookie-expiry.json`, `gemini-cookie-expiry.json`, etc.) werden beim ersten Start automatisch migriert und gelöscht.
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Model Fallback Chain (seit v1.9.0)
|
|
109
|
-
|
|
110
|
-
Wenn ein CLI-Modell fehlschlägt (Timeout, Fehler), wird automatisch ein leichteres Modell versucht:
|
|
111
|
-
- `gemini-2.5-pro` → `gemini-2.5-flash`
|
|
112
|
-
- `gemini-3-pro-preview` → `gemini-3-flash-preview`
|
|
113
|
-
- `claude-opus-4-6` → `claude-sonnet-4-6`
|
|
114
|
-
- `claude-sonnet-4-6` → `claude-haiku-4-5`
|
|
115
|
-
|
|
116
|
-
Die Response enthält das tatsächlich verwendete Modell im `model`-Feld.
|
|
23
|
+
For major changes, open an issue first to discuss design and scope.
|