Skip to content

fix(external-sources): deduplicate configuration source presentation#1646

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/fix-external-source-presentation
Jul 20, 2026
Merged

fix(external-sources): deduplicate configuration source presentation#1646
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/fix-external-source-presentation

Conversation

@limityan

Copy link
Copy Markdown
Collaborator

Summary

  • Coalesce provider-specific records that point to the same physical external configuration, while keeping older Peer Hosts fail-safe when they do not expose the new optional group identity.
  • Hide healthy source groups with no imported Command, Tool, Subagent, MCP, or actionable diagnostic content; keep suppressed and unhealthy sources visible for recovery.
  • Replace the misleading aggregate switch with compact capability-level controls, preserve scope disclosure, deduplicate diagnostics, and improve responsive/accessibility behavior.
  • Keep suppressed OpenCode Subagent sources discoverable without parsing their content, and release the refresh gate before the post-mutation refresh to avoid self-deadlock.

Compatibility and risk

  • presentationGroupId is optional, omitted when absent, and accepts legacy snapshots without the field.
  • Existing single-source mutation commands are unchanged; no batch transport contract was added.
  • Group identities are generated before path redaction from already-public stable source keys, so raw paths are not exposed.
  • Older hosts without group identity keep records separate and source controls read-only according to existing host capabilities.

Validation

  • pnpm --dir src/web-ui run test:run src/infrastructure/config/externalSourcePresentation.test.ts src/infrastructure/config/components/ExternalSourcesConfig.test.tsx (48 passed)
  • pnpm run type-check:web
  • pnpm run lint:web (0 errors; 13 existing warnings outside this change)
  • cargo test -p bitfun-opencode-adapter --test opencode_subagent_adapter (5 passed)
  • cargo test -p bitfun-product-domains --features product-full --test external_source_contracts presentation_group_id_is_optional_and_uses_the_camel_case_wire_name
  • cargo test -p bitfun-core presentation_groups_are_assigned_before_location_redaction --lib
  • cargo check -p bitfun-core --features product-full
  • node scripts/check-core-boundaries.mjs
  • pnpm run check:repo-hygiene
  • git diff --check gcwing/main...HEAD
  • Manual OpenCode CLI discovery of the local smoke Skill, Subagent, and Command fixtures

Independent review

A fresh architect review and a fresh product/UX review were completed after the implementation changes. Both found no remaining P0/P1; the product re-review also confirmed all follow-up P2 items were closed.

@limityan
limityan force-pushed the yanzhn/fix-external-source-presentation branch from a514653 to f6a0fdc Compare July 20, 2026 09:33
@limityan
limityan marked this pull request as ready for review July 20, 2026 09:43
@limityan
limityan merged commit b72cd39 into GCWing:main Jul 20, 2026
5 checks passed
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