fix(agentplugins): share one nativeconfig kernel across activate, verify, and identity - #320
Merged
777genius merged 11 commits intoSep 19, 2026
Conversation
…lint gate ADR 0007 and ARCHITECTURE claimed cmd/agentplugins was the only production clients/all importer; authoring's plugin-kit-ai binary is a second root. Coverage now cds into the nested module, and the plan matches the lint.yml that #319 actually shipped.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…erify, and identity inspect Activate wrote through env.NativeConfig while Verify and registry inspect constructed nativeconfig.New(), so an injected kernel never observed its own writes.
An omitted NativeConfig used to construct a second OS kernel, so production and tests could not tell a wired kernel from a default. Zero Kernel now fails Inspect/Apply; Kiro re-runs duplex preflight before native writes; Makefile/core-fast cd into the nested module under GOWORK=off.
Staging a native or native-config client without As[Projector] used to succeed with empty native objects. Claude and ChatGPT Activate now run PreflightActivation themselves so a skipped dispatcher lookup cannot bypass the probe.
A zero nativeconfig kernel skipped ApplyBatch on Cline/OpenCode skill-only paths, so omitted NativeConfig still mutated the host tree. Require FileIO before those writes and keep GOWORK=off test-core inside nested modules.
Gemini installs skills before ApplyBatch, so a zero kernel still mutated the host tree and only failed on the later MCP batch. Require FileIO on the Gemini and Windsurf native entry points before any skill or config IO.
…commit Always-Clear InspectNativeRegistry let colliding skills and MCP names pass the pre-commit gate. Mirror Gemini: empty registry root is indeterminate, and a present host name is a collision.
…pect Repair must observe identity after a host wiped managed MCP entries. Exact verify stays on Activate; identity inspect now matches Gemini's allow-missing check.
Wiping a managed Windsurf entry must still be repairable. Identity now uses allow-missing verify like Gemini; Activate still requires exact ownership.
Single-client Repair skips identity inspect. RepairGroup and Update are the production gates that must restore a missing owned Windsurf entry.
…t the package RepairGroup refused a missing managed directory because inspect still verified the live ActivePath projection. Host-only inspect matches Cline and Gemini so a wiped package can be restaged.
777genius
merged commit Sep 19, 2026
e44ac41
into
refactor/installer-core-clean-architecture
27 checks passed
2 tasks
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
env.NativeConfigwhile Verify/identity inspect constructednativeconfig.New(). One kernel is injected into bothActivatorandNativeIdentityObserver; nilNativeConfigis fail-closed (zero Kernel).Stager.projectno longer returns empty native objects whenAs[Projector]misses a native/native-config client (including VS Code). Trait parity requires that projector. Claude and ChatGPTActivaterunPreflightActivationthemselves.cdinto the nested module underGOWORK=off.cds into the nested module.Test plan
go testfor domain, providers, clients/all, usecaseTestStagerRejectsMissingProjectorForNativeConfigClientTestActivatorRejectsNativeConfigMutationWithoutKernel