Skip to content

Harden agent workflows and target distribution#26

Merged
Lyther merged 8 commits into
mainfrom
feat/local-ops-server-distribution
Jul 21, 2026
Merged

Harden agent workflows and target distribution#26
Lyther merged 8 commits into
mainfrom
feat/local-ops-server-distribution

Conversation

@Lyther

@Lyther Lyther commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • add OpenHands as a generated target and harden user-scope installation, config ownership, and target metadata
  • strengthen verify, readiness, and test-policy commands so substitute-backed or transcript-only runs cannot be presented as real acceptance evidence
  • improve maintainer review and publication checks, and broaden dev-chore into an in-development quality checkpoint for design direction, reuse, duplication, proportional complexity, risk, and UX

Verification

  • npm run check
  • npm test
  • npm run build -- --target all
  • all-target user-scope install dry-run and live install
  • second all-target install: 0 rewrites, 3,938 managed files unchanged, 0 stale removals, 0 config merges

Notes

The branch is organized as seven atomic commits so target support, command-policy hardening, and development-quality changes remain independently reviewable.

Lyther added 7 commits July 9, 2026 15:44
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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 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".

Comment on lines +408 to +409
const next = new Map(previousEntries.map((entry) => [configEntryKey(entry.path, entry.format), { ...entry }]));
for (const merge of configMerges) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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.
@Lyther
Lyther merged commit 9249ef5 into main Jul 21, 2026
2 checks passed
@Lyther
Lyther deleted the feat/local-ops-server-distribution branch July 21, 2026 08:49
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