Harden agent workflows and target distribution#26
Conversation
Add OpenHands as a generated target with AgentSkill, rules, external skill, and user-scope MCP outputs. Record config-entry ownership in install manifests so owned MCP entries are overwritten or pruned while unknown sibling entries remain intact. This removes hash/backups from the generated-file sync path and keeps legacy ownership in registry/legacy-owned.json. Reviewed manually against the staged diff. Checks: npm run check; npm run check -- generated; npm test; npm run build -- --target all.
Require commit, PR, patch, release, and generated text to be read back after tooling writes it so integrations cannot silently add AI/vendor attribution or advertising. Checks: npm run check:commands; npm run check:rules; npm run check; npm run check:generated.
Require a necessity record for every non-real test substitute and keep substitute-backed runs out of verification and readiness evidence. Harden implementation, review, and verification commands across generated hosts, with Claude and Codex regression assertions. Review: mandatory diff review passed after fixing the target-scope scan.
Turn dev-chore into a trigger-based development quality checkpoint. Catch design drift, duplicate ownership, unnecessary construction, disproportionate risk controls, and incomplete user paths before review. Preserve workflow role ownership through routed, embedded, and direct modes. Lock the generated Claude and Codex surfaces with regression assertions. Reviewed via qa-review; no blocking findings. Checks: - npm run check - npm test - npm run build -- --target all
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d3d62387df
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const next = new Map(previousEntries.map((entry) => [configEntryKey(entry.path, entry.format), { ...entry }])); | ||
| for (const merge of configMerges) { |
There was a problem hiding this comment.
Prune owned entries on obsolete config routes
When a full install changes scope or an adapter moves its MCP config path/format, configMerges contains only the newly emitted route, so this loop never visits the old manifest key. The old config retains its previously owned MCP servers and its ownership record indefinitely; the same limitation prevents legacy-owned.json entries for retired routes from performing their documented cleanup. Full sync should create removal merges for every stale owned config route, not only update the route currently emitted by the adapter.
Useful? React with 👍 / 👎.
Full installs now remove owned MCP entries from retired config paths and formats, including legacy ownership records, while preserving user-owned siblings.
Summary
dev-choreinto an in-development quality checkpoint for design direction, reuse, duplication, proportional complexity, risk, and UXVerification
npm run checknpm testnpm run build -- --target allNotes
The branch is organized as seven atomic commits so target support, command-policy hardening, and development-quality changes remain independently reviewable.