fix: installation failure — empty config rejected by schema (#33)#34
Open
contextablemark wants to merge 4 commits intomainfrom
Open
fix: installation failure — empty config rejected by schema (#33)#34contextablemark wants to merge 4 commits intomainfrom
contextablemark wants to merge 4 commits intomainfrom
Conversation
…artup (#33) Config schema now defaults all SpiceDB fields so `plugins install` can write an empty config entry without validation failure. On startup, register() checks for an empty token and throws a clear error directing the user to configure it. Also adds a temporary unhandledRejection guard for grpc-js load balancer rejections that crash the process, and fixes the Docker Compose FALKORDB_URI to use the correct service name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The installer validates against openclaw.plugin.json's configSchema (ajv)
before the TypeScript parse() runs. The "required": ["spicedb"] and
"required": ["token"] entries caused install to fail with empty config.
Added 7 tests that load the actual openclaw.plugin.json and verify no
sub-schema has required fields, plus tests confirming TypeScript parse()
accepts the empty config: {} that the installer writes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The JSON Schema `required` fields cannot work with the current OpenClaw
installer — it validates `entry?.config ?? {}` against the schema, and
ajv has no `useDefaults`. The `required` enforcement lives in register()
at runtime instead, with an error message that shows the exact JSON
snippet to add.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The installer writes entries with no config key, so pluginConfig is
undefined at startup. parse() now treats undefined/null as {} (all
defaults with empty token) instead of throwing a generic "config
required" error. This lets the flow reach register() which shows
the exact JSON snippet to add to ~/.openclaw/openclaw.json.
Bumps to 0.2.6.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
config: {}at install time by defaulting all SpiceDB fields (token defaults to"")register()checks for empty token at startup and throws a clear error: "spicedb.token is not configured. Set it in plugins.entries.openclaw-memory-graphiti.config.spicedb.token in ~/.openclaw/openclaw.json"process.on('unhandledRejection')guard for grpc-js load balancer rejections that crash the gateway process during SpiceDB connection setupFALKORDB_URIfromhost.docker.internaltofalkordbservice nameFixes #33
Test plan
plugins install @contextableai/openclaw-memory-graphitisucceeds with empty config🤖 Generated with Claude Code