Skip to content

fix(ci): lint reusable workflows from merge-base - #319

Merged
777genius merged 1 commit into
refactor/installer-core-clean-architecturefrom
fix/architecture-lint-merge-base
Sep 19, 2026
Merged

777genius merged 1 commit into
refactor/installer-core-clean-architecturefrom
fix/architecture-lint-merge-base

Conversation

@777genius

Copy link
Copy Markdown
Owner

Summary

  • lint.yml is workflow_call-only, so golangci-lint-action only-new-issues never sees github.event.pull_request and silently lints the whole module. Required on refactor: installer core clean architecture refactor #288 failed with 691/649/137/293 issues, including unchanged parent files such as osrunner.go.
  • Callers now pass lint-base: origin/<base> and the reusable workflow runs --new-from-merge-base, matching make lint. Locally that is 0 issues on root/cli/parent plus 7 real new-vs-main findings, which this PR also fixes (ST1005 on cline/gemini/windsurf, unused Gemini default-kernel wrappers).

Test plan

  • golangci-lint run --new-from-merge-base=origin/main in root, cli, parent, and agentplugins
  • size/arch gate on parent and agentplugins
  • scripts/check-lint-baseline.sh origin/main (introduces config)
  • go test ./providers/ -run 'Gemini|Cline|Windsurf' in the nested module
  • core-fast on this PR
  • after squash-merge, Required lint on refactor: installer core clean architecture refactor #288 vs main

workflow_call hides pull_request from golangci-lint-action only-new-issues, so Required on the architecture PR linted every module. Match make lint and fix the ST1005/unused findings that are actually new versus main.
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: f1bbf83d-8d09-4309-9045-22d872c6d20e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@777genius
777genius merged commit 87b0479 into refactor/installer-core-clean-architecture Sep 19, 2026
27 checks passed
777genius added a commit that referenced this pull request Sep 19, 2026
…ify, and identity (#320)

* docs(agentplugins): record both composition roots and the merge-base 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.

* fix(agentplugins): thread one nativeconfig kernel through activate, verify, 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.

* fix(agentplugins): fail closed on a missing nativeconfig kernel

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.

* fix(agentplugins): fail closed when a native client has no projector

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.

* fix(agentplugins): refuse skill-only native writes without a kernel

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.

* fix(agentplugins): refuse Gemini skill writes without a kernel

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.

* fix(agentplugins): inspect Cline and OpenCode native identity before 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.

* fix(agentplugins): allow missing OpenCode objects during identity inspect

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.

* fix(agentplugins): allow missing Windsurf MCP during identity inspect

Wiping a managed Windsurf entry must still be repairable. Identity now uses allow-missing verify like Gemini; Activate still requires exact ownership.

* test(agentplugins): cover Windsurf RepairGroup after wiped native MCP

Single-client Repair skips identity inspect. RepairGroup and Update are the production gates that must restore a missing owned Windsurf entry.

* fix(agentplugins): inspect OpenCode and Windsurf host identity without 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.
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