Skip to content

Publish managed plugins during external sync - #2162

Open
Aaronontheweb wants to merge 1 commit into
feat/git-skill-pluginsfrom
feat/git-skill-plugin-runtime
Open

Aaronontheweb wants to merge 1 commit into
feat/git-skill-pluginsfrom
feat/git-skill-plugin-runtime

Conversation

@Aaronontheweb

@Aaronontheweb Aaronontheweb commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Netclaw needs one coordinated publication path for server feeds and managed plugins.

This change extracts a managed plugin participant from the server-feed coordinator.

The existing actor still owns the timer, active pass, waiters, and lifetime token.

The participant owns startup publication, update policy, rejection state, alerts, and cleanup.

The coordinator refreshes one complete inventory after all source work ends.

Validation:

  • This branch builds against the preceding PR.
  • The full stack passed 8,588 tests and skipped 23 environment-specific tests.
  • Slopwatch found no issues.
  • The file-header and diff checks passed.

Depends on #2161.
Part of #2134.

Pull request stack

Review and merge these pull requests in this order:

  1. Adopt plugin-neutral source and state contracts #2160: Adopt plugin-neutral source and state contracts.
  2. Add Agent Plugins and Codex package adapters #2161: Add Agent Plugins and Codex package adapters.
  3. Publish managed plugins during external sync #2162: Publish managed plugins during external sync.
  4. Add the managed plugin daemon API #2157: Add the managed plugin daemon API.
  5. Add the managed plugin CLI #2158: Add the managed plugin CLI.

This pull request is step 3.

Comment thread src/Netclaw.Daemon/Services/ServerFeedSkillSyncService.cs Fixed
Comment thread src/Netclaw.Daemon/Services/ServerFeedSkillSyncService.cs Fixed
Comment thread src/Netclaw.Daemon/Services/ServerFeedSkillSyncService.cs Fixed
Comment thread src/Netclaw.Daemon/Services/ServerFeedSkillSyncService.cs Fixed
Comment thread src/Netclaw.Daemon/Services/ServerFeedSkillSyncService.cs Fixed
@Aaronontheweb
Aaronontheweb marked this pull request as ready for review September 12, 2026 13:51
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 1cbc636 to 47f3672 Compare September 12, 2026 14:09
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 47f3672 to ebdbe34 Compare September 12, 2026 14:12
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from ebdbe34 to b800bf6 Compare September 12, 2026 14:20
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from b800bf6 to 8559f03 Compare September 12, 2026 14:24

@Aaronontheweb Aaronontheweb left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adversarial review complete.

I found and fixed two runtime defects:

  • Restart could delay installed plugin publication until remote work ended.
  • Invalid plugin configuration could report a successful pass.

The runtime now publishes receipt-backed content first. It also reports invalid configuration as a source failure.

The focused runtime tests pass. I found no remaining defect in this slice.

@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 8559f03 to 37cc7d5 Compare September 12, 2026 16:22
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 37cc7d5 to 386e436 Compare September 12, 2026 16:29
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 08e497e to 1c9826b Compare September 12, 2026 16:51
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from 1c9826b to 13aba36 Compare September 12, 2026 17:11

@Aaronontheweb Aaronontheweb left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found no confirmed runtime defect in this slice. The shared actor, immutable revisions, and durable rejection state match #2134. The architecture now has a clear hotspot. ServerFeedSkillSyncService grew from 943 to 1,257 lines in this slice. The integrated type has 110 branch nodes and 12 constructor parameters. Keep the single actor as the coordinator. Extract the Git plugin state machine before #2135 adds more format rules. The current screenshot check also fails because an ONNX Runtime warning enters two TUI captures. Resolve or rerun the required check before merge.

Comment on lines +76 to +83
catch (Exception ex)
{
logger.LogWarning(
ex,
"Managed plugin sync failed for '{PluginId}' and kept the prior publication",
source.Id);
rows.Add(PluginFailure(source.Id));
}
Comment on lines +289 to +292
catch (Exception ex)
{
logger.LogWarning(ex, "Managed plugin cleanup could not enumerate {Directory}", root);
}
Comment on lines +280 to +286
catch (Exception ex)
{
logger.LogWarning(
ex,
"Managed plugin cleanup failed for source directory {Directory}",
sourceDirectory);
}
Comment on lines +319 to +322
catch (Exception ex)
{
logger.LogWarning(ex, "Managed plugin cleanup failed for directory {Directory}", directory);
}
@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from c65e579 to 40ce4a0 Compare September 12, 2026 21:05
@Aaronontheweb Aaronontheweb changed the title Publish managed Git skill plugins during external sync Publish managed plugins during external sync Sep 12, 2026

@Aaronontheweb Aaronontheweb left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The direction is sound. This slice keeps one coordinator and moves plugin state into a focused participant.

The extraction resolves the earlier service-size concern. I found no new defect that is specific to this slice.

I reviewed commit 40ce4a0. Local checks passed with 8,588 tests, strict OpenSpec validation, Slopwatch, headers, and diff checks.

Local evals lacked provider credentials. Chromium lacked a usable sandbox for native tapes. GitHub checks are still active.

@Aaronontheweb
Aaronontheweb force-pushed the feat/git-skill-plugin-runtime branch from d2e0480 to bdccefb Compare September 15, 2026 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request skills Skill loading, handling, authoring, indexing, and evals.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant