feat: config-backed sink materialization (hy-9d39h)#37
Merged
philcunliffe merged 2 commits intoMay 26, 2026
Conversation
Add production runtime materialization for configured sinks, so daemon boot and CLI dispatch automatically instantiate sinks from config.sinks entries without manual kernel.sinks.instantiate() calls. - Add `fromProvider(provider, name, range)` to capability registry for provider-specific capability lookup - New `src/core/sinks/materialize.js` resolves writer/destination/encoder capabilities and calls sinks.instantiate() for all three sink shapes (request, blob, table-format) - Wire materializeSinks into daemon runtime (after plugin activation) and CLI dispatch (after boot) - Update local_parquet_export smoke to use config-backed sinks instead of manual instantiation, proving the production path works - 19 new tests covering all sink shapes, error modes, and fromProvider Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…y-9d39h) - Add tmpRoot to RunDaemonOptions interface - Add fromProvider to CapabilityRegistry interface and activation facade - Capture config.sinks before withSpan callback to preserve TS narrowing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56945bd
into
integration/hypaware-plugin-surfaces
6 checks passed
philcunliffe
added a commit
that referenced
this pull request
May 26, 2026
* chore: open plugin surface integration branch * feat: config-backed sink materialization (hy-9d39h) (#37) * feat: config-backed sink materialization (hy-9d39h) Add production runtime materialization for configured sinks, so daemon boot and CLI dispatch automatically instantiate sinks from config.sinks entries without manual kernel.sinks.instantiate() calls. - Add `fromProvider(provider, name, range)` to capability registry for provider-specific capability lookup - New `src/core/sinks/materialize.js` resolves writer/destination/encoder capabilities and calls sinks.instantiate() for all three sink shapes (request, blob, table-format) - Wire materializeSinks into daemon runtime (after plugin activation) and CLI dispatch (after boot) - Update local_parquet_export smoke to use config-backed sinks instead of manual instantiation, proving the production path works - 19 new tests covering all sink shapes, error modes, and fromProvider Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(types): resolve CI typecheck failures for sink materialization (hy-9d39h) - Add tmpRoot to RunDaemonOptions interface - Add fromProvider to CapabilityRegistry interface and activation facade - Capture config.sinks before withSpan callback to preserve TS narrowing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat: plugin-owned product logic — client descriptors, generalized skills, hook migration (hy-bv310) (#38) Move client-specific and plugin-specific product behavior out of core and behind plugin-owned manifest descriptors: - Add `contributes.client` descriptor to plugin manifests with skill_dir, attach_probe, and required_upstreams fields - Extend plugin catalog to extract client descriptors from manifests - Replace hardcoded client loops in status.js with catalog-driven descriptor iteration for attach probing - Generalize `hyp skills install` to resolve skill directories from catalog instead of hardcoding .claude/skills and .codex/skills - Move `claude-hook session-context` command from core to the Claude plugin — registered during plugin activation - Rewrite V1 advisory diagnostics to derive client/upstream checks and encoder/blob-store checks from catalog metadata instead of hardcoded plugin name sets Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat: gascity acceptance and plugin-surface cleanup (hy-sadjq) (#39) Reframe gascity from "excluded and invisible" to "excluded from default activation but discoverable through the plugin catalog." Update test and smoke labels/comments to reflect that gascity absence in status is about the config scenario, not a blanket prohibition. Add catalog test for gascity contributions (source, commands, dataset, init preset, skill). Add detach coverage to the gascity smoke test. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: replace inline import types with @import declarations and sanitize env var derivation (hy-hfne7) (#40) Replace 20+ inline import('...') type annotations with @import JSDoc declarations at file tops across validate.js, status.js, materialize.js, and sink-materialize.test.js. Fix resolveClientSettingsPath to sanitize non-alphanumeric characters (hyphens, dots, etc.) in client names when deriving env var keys, so that hyphenated clients like 'claude-desktop' produce valid POSIX env var names (CLAUDE_DESKTOP_HOME instead of CLAUDE-DESKTOP_HOME). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: address PR 35 diagnostic review feedback * fix: surface CLI sink materialization warnings --------- Co-authored-by: Claude Opus 4.7 (1M context) <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.sinksafter plugin activation during daemon bootBead
hy-9d39h— config-backed sink materializationTest plan
npm test— 433/433 pass