Publish managed plugins during external sync - #2162
Aaronontheweb wants to merge 1 commit into
Conversation
1cbc636 to
47f3672
Compare
47f3672 to
ebdbe34
Compare
ebdbe34 to
b800bf6
Compare
b800bf6 to
8559f03
Compare
Aaronontheweb
left a comment
There was a problem hiding this comment.
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.
8559f03 to
37cc7d5
Compare
37cc7d5 to
386e436
Compare
08e497e to
1c9826b
Compare
1c9826b to
13aba36
Compare
Aaronontheweb
left a comment
There was a problem hiding this comment.
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.
13aba36 to
c65e579
Compare
| catch (Exception ex) | ||
| { | ||
| logger.LogWarning( | ||
| ex, | ||
| "Managed plugin sync failed for '{PluginId}' and kept the prior publication", | ||
| source.Id); | ||
| rows.Add(PluginFailure(source.Id)); | ||
| } |
| catch (Exception ex) | ||
| { | ||
| logger.LogWarning(ex, "Managed plugin cleanup could not enumerate {Directory}", root); | ||
| } |
| catch (Exception ex) | ||
| { | ||
| logger.LogWarning( | ||
| ex, | ||
| "Managed plugin cleanup failed for source directory {Directory}", | ||
| sourceDirectory); | ||
| } |
| catch (Exception ex) | ||
| { | ||
| logger.LogWarning(ex, "Managed plugin cleanup failed for directory {Directory}", directory); | ||
| } |
c65e579 to
40ce4a0
Compare
Aaronontheweb
left a comment
There was a problem hiding this comment.
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.
40ce4a0 to
d2e0480
Compare
d2e0480 to
bdccefb
Compare
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:
Depends on #2161.
Part of #2134.
Pull request stack
Review and merge these pull requests in this order:
This pull request is step 3.