Skip to content

feat(docker): add lossless-claw context management plugin#14

Merged
guiramos merged 1 commit intoworkfrom
feat/lossless-claw-plugin
Mar 26, 2026
Merged

feat(docker): add lossless-claw context management plugin#14
guiramos merged 1 commit intoworkfrom
feat/lossless-claw-plugin

Conversation

@guiramos
Copy link
Copy Markdown

Adds @martian-engineering/lossless-claw plugin to the agent Docker image.

This plugin replaces OpenClaw's default sliding-window context compaction with DAG-based hierarchical summarization (Lossless Context Management). All messages are persisted in SQLite and summarized when context hits 75% threshold, with recent messages kept raw.

Requires corresponding config change in the backend reference-template to activate (separate PR).

Plugin: https://www.npmjs.com/package/@martian-engineering/lossless-claw

Platform extensions architecture for delivering plugins to agent containers:
- Host-side extensions mounted read-only at /opt/openclaw/platform-extensions/
- sync-platform.sh copies extensions + applies config patches from manifest
- generate-manifest.sh reads platform-config.json per extension
- Stamp file prevents redundant re-copies on container restart

Plugin runtime fix for OpenClaw 2026.3.14:
- Bundle src/plugins/runtime/index.ts via pnpm tsdown during build
- Produces dist/runtime/index.js that the plugin loader expects

Dockerfile changes:
- Added tsdown bundle step for plugin runtime module
- Copy sync-platform.sh to runtime stage
- Removed baked-in plugin install (extensions come from host mount)
@guiramos guiramos force-pushed the feat/lossless-claw-plugin branch from c10d7b4 to 2298962 Compare March 26, 2026 02:55
@guiramos guiramos merged commit 66f4558 into work Mar 26, 2026
2 of 9 checks passed
@guiramos guiramos deleted the feat/lossless-claw-plugin branch March 26, 2026 15:01
guiramos added a commit that referenced this pull request Mar 31, 2026
CRITICAL:
- #1: Fix InboxMessage.from type from number to string (Pilot address)
- #2: Fix parseNodeIdFromPilotAddress to extract only last hex group
- #3: Rebuild hostnameToNodeId cache from Convex on startup
- #4: Fix AgentNetworkConfig → AgentRegistryConfig type reference
- #5: Track processed message hashes to prevent re-processing on clear failure

HIGH:
- #7: Change default pollIntervalSeconds from 300 to 15
- #8: Fix startDaemon regex to match Pilot address format (0:xxxx.xxxx.xxxx)
- #9: Use registerAgent() for re-registration to preserve enriched metadata
- #10: Fix search query param from 'query' to 'q'
- #12: handleRefresh supports optional accountId, refreshes all if omitted
- #13: Move spawn import to top-level, remove 7 inline dynamic imports
- #14: Mark inbox tool action as debug-only (poll loop handles processing)

MEDIUM:
- #15: Add installation_id to PilotPeer interface and agentToPeer
- #16: Use exact /by-hostname/ endpoint for get_agent action
- #17: Add LRU-style eviction to hostnameToNodeId (max 1000 entries)
- openclaw#18: Add mutex (isPolling flag) to executePollCycle
- openclaw#19: Add lifecycle comments to startDaemon/stopDaemon (container vs local)
- openclaw#20: Pass gatewayToken in fetchNetworkMetadata Convex query
- openclaw#21: Wrap sendText fallback in try/catch with error handling
- openclaw#23: Document sendMessage JSON vs raw text design intent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant