feat(openclaw-plugin): v2.0.0-alpha.1 — fail-closed default + §12-review fixes#86
Merged
Conversation
added 2 commits
May 28, 2026 19:13
…iew fixes Erstes §12-Review (run 2026-05-28, label openclaw-plugin-v2.0.0-alpha.0) fand 6 Blocker. Dieser PR adressiert 5 davon im Code + 1 als ADR-deferral. Code-Fixes: - #1 Fail-Open Default → Neuer Config-Param `failOpen` (default false). before_tool_call + inbound_claim blocken jetzt bei API-Lookup- Fehlern, statt durchzulassen. Opt-in via failOpen=true. - #2 inbound_claim DENY-Ignorierung → Review-Befund war überwiegend Halluzination (Score-Check existierte schon), aber der Fail-Open- Pfad ist via #1 jetzt auch hier fail-closed. - #4 Cache TTL Default 300s → 10s (Zero-Trust Revocation-Latency). - #5 Vendored OpenClaw-Types ohne Versions-Anchor → Header-Kommentar in openclaw-types.ts pinnt jetzt explizit Range 0.9.x – 1.0.x + Anweisung „minor bump on upstream-breaking change". README zeigt Range in Architektur-Section. - #6 GDPR/Privacy → Neue README-Section „Privacy & Data Handling" listet explizit alle Endpoints, gesendete Datenfelder, Endpoint- URL, Retention-Pointer, Disable-Mechanismus. ADR-Deferral: - #3 JWS Response-Signatur-Verifikation → ADR 0001 (docs/decisions/) erklärt warum v2.1 statt v2.0.0-alpha.1: braucht Bootstrap-/ Rotations-/Failure-Mode-Design, eigener Sprint. Risiko- Mitigation in v2.0.0-alpha.1 durch #1 (kein Fall-Through bei API-unreachable). README-Section „Security Posture & Roadmap" kommuniziert v2.1-Plan + verbleibende MITM-Surface. Publish-Prep (re-applied, since v2.0.0-alpha.0 origin/main state hat diese noch nicht): - Paketname @moltrust/openclaw → @moltrust/openclaw-plugin - prepublishOnly, engines (node>=20), publishConfig.access: public - author, bugs, repository.url (Standardformat) - .gitignore + .npmignore Tests: 27 → 31 (4 neue, fail-closed + opt-in-fail-open je hook). py-equivalent: tsc + vitest grün, package size ~12 kB. Re-§12-Review läuft nach Merge gegen das gleiche Briefing.
Re-§12-Review für alpha.1 (run 2026-05-28 17:27 UTC, output ~/moltstack/reviews/20260528_172832_openclaw-plugin-v2.0.0-alpha.1_review.md) votierte ÜBERARBEITEN. Drei neue Blocker für alpha.2 — alle in diesem Commit adressiert. Blocker #1 (Test-Lücke): kombinatorischer Pfad "own DID OK + counterparty lookup fail + failOpen=true → ALLOW" war nicht getestet. Test ergänzt in before-tool-call.test.ts. Blocker #2 (Performance): sequenzielle Counterparty-Lookups in before-tool-call.ts waren O(N × API-latency) — 4 DIDs × 50ms = 200ms+ Event-Loop-Block. Fix: Promise.allSettled + post-evaluation. Block- Priority ist deterministisch (erste Counterparty im array order wins). Own-DID-Check bleibt VOR counterparties (early-exit bei eigener Insufficienz). Blocker #3 (Air-Gap Lücke): die moltrust_verify / moltrust_trust_score / moltrust_endorse Agent-Tools blieben auch bei minTrustScore=0 + verifyOnStart=false beim Agent-Runtime registriert — LLM-Halluzinationen konnten ungewollte DID-Lookups triggern. Neue Config-Option `registerMoltrustTools` (default true). Wenn false: die 3 registerTool- Calls werden geskipped, Tools sind für die LLM nicht aufrufbar. Slash- Commands + RPC + Lifecycle-Hooks bleiben unverändert (explizite Operator/User-Aktionen, nicht LLM-aufrufbar). README: Privacy-Section schärft Disable-Anweisung — "Disabling automatic outbound calls" (alt) vs neue "True air-gap mode" mit registerMoltrustTools=false. Configuration-Beispiel zeigt neuen Default-Wert. Tests: 31 → 32 (1 neuer für kombinatorischen Pfad). Alle 32 grün, tsc grün. Re-Re-§12-Review läuft mit alpha.2-Briefing-Append vor npm publish.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Erstes echtes §12-Review-Lauf (2026-05-28, label
openclaw-plugin-v2.0.0-alpha.0) fand 6 Blocker. Dieser PR adressiert 5 davon im Code + 1 als ADR-deferral auf v2.1.Re-§12-Review läuft nach Merge dieses PRs gegen das gleiche Briefing — kein
npm publishdavor.Code-Fixes (Blocker #1, #2, #4, #5, #6)
#1 Fail-Open Default → Fail-Closed
failOpen(defaultfalse) inopenclaw.plugin.json,src/openclaw-types.tsbefore_tool_call+inbound_claimblocken jetzt bei API-Lookup-Fehlern statt durchzulassenfailOpen: truefür Fleets wo Verfügbarkeit über Trust-Gating gehtfailOpen=falsefür Debugging#2
inbound_claimDENY ignoriert{handled: true, reply: ...}(siehesrc/hooks/inbound-claim.ts:49im origin/main)#4 Cache TTL
cacheTtlMs: 300000(5 min) →10000(10s) — Zero-Trust-konforme Revocation-Latency#5 Vendored OpenClaw-Types ohne Versions-Anchor
src/openclaw-types.tspinnt explizit Range 0.9.x – 1.0.x mit Baseline-Commit45146913007d#6 GDPR/Privacy
api.moltrust.ch, konfigurierbar)moltrust.ch/privacy)minTrustScore: 0+verifyOnStart: false)ADR-Deferral (Blocker #3 — JWS Response-Signatur)
Neuer ADR
docs/decisions/0001-openclaw-jws-response-verification-deferred.md(erster ADR im moltrust-api Repo überhaupt). Erklärt warum JWS-Verify in v2.1 statt v2.0.0-alpha.1:Publish-Prep (re-applied)
Origin/main hat noch den Pre-Publish-Prep-Stand (
@moltrust/openclawv2.0.0-alpha.0). Dieser PR re-applied alle Publish-Prep-Edits:@moltrust/openclaw→@moltrust/openclaw-pluginversion→2.0.0-alpha.1prepublishOnly,engines(node>=20),publishConfig.access: publicauthor,bugs,repository.url(Standardformatgit+https://...).gitignore+.npmignoreTests
npm install && npm run build && npm testlokal grünWas NICHT in diesem PR
npm publish— wartet auf Re-§12-ReviewMoltyCel/moltrust-openclaw-pluginAnlage —repository.urlzeigt darauf, Repo existiert noch nicht (flagge ich separat nach Merge)Coordination
/Users/kerstenkroehl/Downloads/review-briefing-openclaw-plugin.md) mit Labelopenclaw-plugin-v2.0.0-alpha.1