Peter Steinberger
f89c624ebb
fix(reef): bound inbox WebSocket frames ( #108886 )
2026-07-16 03:17:52 -07:00
pick-cat
9026b9f4ac
fix(reef): bound relay HTTP JSON response body reads ( #106456 )
...
* fix(reef): bound relay HTTP JSON response body reads
* test(reef): cover relay response boundaries
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 01:00:35 -07:00
Peter Steinberger
ff4d854167
fix(reef): migrate legacy peer trust config ( #108417 )
...
* fix(reef): migrate legacy peer trust config
* chore(reef): leave changelog to release flow
* build(reef): refresh bundled config metadata
* fix(reef): keep identity scope internal
2026-07-15 11:37:32 -07:00
Peter Steinberger
f810fb35d5
refactor(reef): centralize peer trust in SQLite ( #108375 )
...
* feat(plugin-sdk): support removing pairing requests
* refactor(reef): centralize peer trust in SQLite
* chore: defer Reef release note
* fix(reef): share runtime state across module instances
* refactor(reef): narrow trust store boundary
* test(reef): pass config to account description
2026-07-15 10:21:54 -07:00
Peter Steinberger
243eecbee1
refactor(reef): use Noble byte utilities
2026-07-14 14:20:59 -07:00
Peter Steinberger
c56d1bbbbb
fix(reef): send through the connected gateway ( #107373 )
...
* fix(reef): route outbound through gateway
* chore: keep Reef release note in PR
2026-07-14 04:08:36 -07:00
sunlit-deng
7aa1aacb8e
fix(reef): prevent oversized guard responses from consuming memory ( #106439 )
...
* fix(reef): bound guard provider response reads
* test(reef): strengthen guard response bound proof
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 18:02:11 -07:00
Peter Steinberger
d361b4ccb8
feat(reef): headless openclaw reef CLI for agent-driven registration and pairing
...
Adds a non-interactive command surface (openclaw reef register|status|friend code|request|list|remove) so an agent can claim a handle and manage guarded friendships when its owner asks, without the interactive wizard. --json emits machine-readable output for automation. Registration is crash-safe and idempotent: guard defaults are provider-coupled, the full config is validated before the single-use magic-link token is consumed, a duplicate-handle claim recovers by proving key ownership and reconciling the relay's request policy, the exchanged session is cached scoped to relay+email (never printed) so reruns recover, one state dir is pinned to one identity, and friend removal revokes both the pin and the allowlist entry. Manifest gains commandAliases/onCommands so the CLI resolves; docs cover the agent-driven path.
2026-07-13 16:23:13 -07:00
Peter Steinberger
6315dd8e2d
fix(reef): adopt self-initiated friendships via durable outbound-intent markers
2026-07-13 13:03:55 -07:00
Peter Steinberger
2d5803a250
fix(reef): use bundled-channel-entry contract so channelConfigs surfaces load
2026-07-13 08:52:14 -07:00
Peter Steinberger
882b2fe900
feat(channels): bundle Reef guarded claw-to-claw channel ( #106232 )
...
* feat(channels): bundle Reef guarded claw-to-claw channel
Moves the Reef channel extension from openclaw/reef into the bundled extensions tree with the wire protocol vendored under extensions/reef/protocol. Includes channelConfigs manifest metadata, runtime status reporting via setStatus/buildAccountSnapshot, abort-aware inbox shutdown, monotonic device-auth timestamps, and immutable-model guard admission (dated snapshots plus documented gpt-5.6 ids).
* fix(reef): pin zod exactly per dependency pin guard
* style(reef): satisfy extension lint gates
Curly braces in vendored protocol, explicit type re-exports, typed catch callbacks, Object.assign over map-spread, abort-aware loop restructure.
* fix(reef): CI gates — knip workspace, boundary tsconfig, facade imports, cycle break, contract baselines
- knip: reef workspace project includes vendored protocol/ (owns noble deps)
- tsconfig: conform to canonical extension package-boundary include/exclude; add @openclaw/plugin-sdk devDependency
- imports: channel-inbound/channel-outbound facades instead of deprecated subpaths
- protocol: home ReplayStore contract in envelope.ts to break the envelope<->replay type cycle
- baselines: reef in unguarded runtime-api list; regenerate bundled channel config metadata
* feat(reef): plugin catalog cover art, channel label, changelog revert
* fix(reef): drop unused error-class exports, register lint suppression
* fix(reef): knip entry surface for vendored protocol, explicit WebSocketLike export
2026-07-13 05:17:44 -07:00