feat(harness): inline include editing & manifest editor in detail pane#250
Merged
Conversation
Adds inline add/edit/remove of includes directly from the harness detail pane, gated to non-registry harnesses. Builds on Phase 1's foundation; no changes to the existing marketplace-driven flow. - IncludeMutator service wraps ynh include remove/update with the same streaming pattern as IncludeApplier - HarnessIncludeEditor coordinator drives the per-include affordances (edit sheet, remove confirmation) and the inline add panel state - AddIncludeFlow embeds the source picker (marketplace browse or git URL), reusable picks selector, and review-and-apply step inline below the dependencies section - EditIncludeSheet edits ref/path/picks with a command preview and honors ynh's "empty picks = include all" semantics - Already-installed plugins in the source picker route to Edit instead of attempting a duplicate add Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds an "Edit Manifest…" item to the detail pane action menu (gated to fully-editable harnesses) that opens a sheet for the safe subset of plugin.json fields. Includes/delegates remain managed by ynh commands. - HarnessManifestEditor service reads/writes .ynh-plugin/plugin.json, preserving every key (\$schema, name, includes, etc.) by round-tripping through a JSON dictionary - SemverValidator gives the version field a shape check with inline hint - VendorService drives the default-vendor picker - Save invalidates detail and re-fetches so the header reflects the change immediately Also picks up a swift-format whitespace fix on AddIncludeFlow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Manifest save now refreshes the harness list so the sidebar reflects
new version and description (was only re-fetching detail)
- "Default Vendor" label disambiguates the manifest field from the
per-user override badge in the header
- Drift triangle on dependency rows now matches by git URL when an
include has no subpath, so includes spanning the whole repo light up
- Drift tooltip names the SHA delta ("Upstream commit changed: abc1234
→ def5678") instead of the generic banner copy
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Brings 39 non-English locales up to 852/852 keys. Covers the 50 new strings added by this branch (include add/edit/remove + manifest editor + drift tooltip) plus 12 pre-existing gaps that the localizer audit surfaced (sidebar checkout-branch sheet, harness loading help, unversioned drift help/banner/confirmation copy). Validated with zero NEEDS TRANSLATION markers, zero missing keys, and zero format-specifier mismatches across all 40 languages. 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
Phase 1 zing pass: makes the Harnesses detail pane a place where you can modify a non-registry harness inline, not just browse it. Builds on PR #249's foundation; no changes to the existing marketplace-driven include flow.
ynh include addcommand before apply. Already-installed plugins in the picker route to Edit instead of attempting a duplicate add.MarketplaceStorelookup of source URL + path), with a command preview at the bottom showing theynh include updatethat Save will run. Honors ynh's "empty picks = include all" semantics.plugin.jsonfields (description, default vendor, version with semver hint). Writes preserve every other key ($schema,includes, etc.) by round-tripping through a JSON dictionary. Save refreshes both detail and the harness list so the sidebar reflects the change.Test plan
+ Add Include…button below the dependencies section.v1.0(non-semver) keeps Save disabled and shows the orange hint.🤖 Generated with Claude Code