Skip to content

fix(cline): align integration registration contracts - #4386

Closed
luvs01 wants to merge 1 commit into
lidge-jun:devfrom
luvs01:agent/cline-registration-followup-20260912
Closed

fix(cline): align integration registration contracts#4386
luvs01 wants to merge 1 commit into
lidge-jun:devfrom
luvs01:agent/cline-registration-followup-20260912

Conversation

@luvs01

@luvs01 luvs01 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Cline is registered as the fifteenth export client, but several surrounding inventories still describe the pre-Cline set. This makes the existing help, localization, registry, asset-provenance, and test-layout checks fail after the integration lands.

Update the help count and complete the explicit client inventories. Keep the two Cline CLI product-name keys in the existing French and Traditional Chinese brand allowlists. Classify Cline client/writer test seeds as client integrations while retaining Cline provider and ClinePass tests in providers. Record the existing icon's Git provenance and normalization without inventing an unrecorded download URL.

The help count stays literal to preserve the existing lightweight help path. The existing registry-derived assertion continues to catch drift. This changes no client writer, translated copy, browser component, or icon bytes.

Earlier focused verification (before this rebase)

  • Reproduced all seven reported failures on d42a1363dc82330c749f4ce5c5f6b3c507483159 before editing: help count, registry count, test seed classification, and four dashboard contract tests.
  • Focused CLI help count/export-name check: 1 passed, 9 assertions.
  • Client registry/lifecycle and both test-layout guard files: 60 passed, 778 assertions.
  • Four dashboard localization, integration API, and client-mark contract files: 32 passed, 5,629 assertions.
  • bun run typecheck, bun run structure:check, bun run privacy:scan, and git diff --check: passed.
  • Validation ran on Windows with Bun 1.4.2. The hosted cross-platform run completed with failure; this stays a draft.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults. No authentication or credential-handling behavior changed.

Review readiness checklist

This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:

  • All CI tests are green on my local testing.

  • I pushed my PR to the latest dev commit.

  • I resolved all correct Codex and CodeRabbit findings.

  • My PR is ready for review.

Current rebase and readiness evidence (2026-09-12)

Current head: 18aba466a1707da27394d396891e56096a4a02cb, rebased onto dev@c27a4831a9d1629005ffce626d54c7b60a00c1de. Range-diff preserves the original patch series. No unresolved review threads were found before publication. The latest-dev and resolved-findings items are checked on this evidence.

Fresh verification on this head:

  • bun run typecheck — passed.
  • bun run structure:check — passed.
  • bun run privacy:scan — passed.
  • bun test --isolate --timeout 60000 ./tests/gui/integrations-invariants.test.ts — passed.
43 pass
 0 fail
Ran 43 tests across 1 file. [43.36s]

These are targeted checks, not a full CI pass. Previous hosted failures belong to the superseded head 5990da5a4fdedf27f8ee75591e511723b9d88bff. Shared CI blockers (Cline inventories, native restore fixtures, Devin/pnpm fixtures) still require integration; known single-run failures also remain unproven resolved. The CI and Ready items stay unchecked, and the PR stays Draft. This rebase does not incorporate sibling PRs or claim their fixes. The upstream synchronize event supplies the new-head CI/approval entry; no duplicate fork matrix was dispatched merely to repeat known shared failures.

@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@lidge-jun

Copy link
Copy Markdown
Owner

리뷰 · 우선순위 74 / 80

설명

이 PR은 Cline이 열다섯 번째 export client로 들어간 뒤에도, 주변 목록이 예전 개수를 말하고 있어서 깨지는 계약을 맞춥니다. 지금 dev HEAD ec065aa0c에는 src/clients/config-export.tsEXPORT_CLIENTS에 이미 cline이 있고, src/integrations/registry.ts에도 Cline이 등록돼 있습니다. 그런데 src/cli/help.ts 도움말은 여전히 "(14 clients)"라고 적혀 있고, tests/gui/integrations-invariants.test.tsEXPORT_CLIENT_IDS 길이를 14로 기대합니다. 그 결과 help/registry/대시보드 계약 테스트가 dev에서 깨집니다. #4389 본문도 같은 baseline 실패(help 14 vs registry 15)를 적었습니다.

패치는 작습니다. help 문구를 15로 바꾸고, GUI 쪽 파일 통합 client 목록에 cline을 넣고, fr/zh-TW 브랜드 허용 목록에 Cline 제품명 키 두 개를 추가하고, test-layout에서 Cline client/writer seed를 clients 도메인으로 분류하며, 아이콘 README에 기존 SVG의 Git 출처와 정규화만 기록합니다. client writer·번역 문장·브라우저 컴포넌트·아이콘 바이트는 건드리지 않습니다. 지금 dev가 밀어 올리는 accounts/stream/cache 레인과도 파일이 거의 안 겹칩니다. draft이고, 본문은 focused 검증만 적었습니다.

라인 - 이게 무슨 문제다

src/cli/help.ts "(15 clients)" - 리터럴 숫자를 유지하는 선택은 본문 설명과 맞습니다. registry에서 길이를 읽어 오면 help 경로가 무거워진다는 기존 이유를 존중합니다. 다만 다음에 클라이언트가 또 늘면 같은 drift가 다시 납니다. registry 파생 assertion이 이미 있으니, help 리터럴은 이번처럼 수동 갱신이 맞습니다.

tests/gui/integrations-invariants.test.ts toHaveLength(15) - EXPORT_CLIENT_IDSObject.keys(EXPORT_CLIENTS)라서 Cline이 들어간 지금 15가 맞습니다. 주석의 "fifteen ids"도 같이 맞춰야 하고, GUI CLIENTS 튜플이 서버 registry와 같은지 이 테스트가 계속 막아 줍니다.

scripts/test-layout/layout.json cline(?!-(?:client|writer)...) - provider 도메인의 cline-와 client seed cline-client/cline-writer를 가르는 정규식입니다. 기존에 provider로 잘못 분류되던 것이 이 PR의 핵심 수리 중 하나입니다. 패턴이 길어졌으니, 비슷한 이름을 나중에 추가할 때 깨지기 쉽습니다.

gui/public/provider-icons/README.md - 다운로드 URL을 지어내지 않고 Git 객체·정규화만 적은 것은 출처 규칙에 맞습니다. 아이콘 바이트 자체는 안 바꿉니다.

메인테이너의 판단이 필요한 지점

  • Cline 랜딩 직후 CI를 막은 inventory drift를 이 PR로 바로 풀지, 다른 Cline follow-up에 묶을지
  • help 리터럴 15를 계속 수동 유지할지, 나중에 registry 길이로 바꿀지(본문은 수동 유지)
  • draft 해제 전에 focused suite만으로 충분한지, Cross-platform까지 볼지

너의 추천
지금 dev baseline을 푸는 값싼 PR이라, hygiene/label 초록이면 draft 해제 후 바로 머지하세요. #4389보다 먼저 넣는 편이 좋습니다. help를 registry에서 읽게 바꾸는 리팩터는 이 PR에 넣지 마세요.

이 댓글은 grok-bot이 작성했습니다

@luvs01

luvs01 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Exact-head CI for 5990da5 completed with failure: https://github.com/luvs01/opencodex/actions/runs/34679954387

The deduplicated recorded assertion failures are five injection/journal cases tracked by #4380, three Devin path cases tracked by #4384, and two pnpm shim cases tracked by #4379. The seven inventory contracts repaired here were absent from that failure list; the complementary runs and focused tests support this classification.

Correction of evidence scope: the local pnpm reproduction used another branch with an unrelated bridge patch, not a pristine dev checkout. Its pnpm files were unchanged, and Windows reported mode 666 after chmod(0755), explaining the POSIX fixture failure. That supports fixture attribution but is not a full baseline execution. The run remains red, and no claim is made that absence from assertion logs proves every job or every failure cause. Draft remains pending integration/validation.

@luvs01

luvs01 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up to the inventory review: this PR is now rebased onto dev c27a483 at head 18aba46. Range-diff preserves the original patch. Typecheck, structure, privacy, and the 43 integration-invariant tests passed on this new head. The earlier broader focused results remain documented in the description; they are not a full cross-platform pass.

The assertion/comment both say fifteen. I recommend keeping this small inventory repair separate and retaining the lightweight literal help count with its registry-derived assertion. The proposed three-dot PR diff preserves dev's remote test entries; a two-tip comparison includes unrelated base drift.

The prior head's matrix failed on the other shared groups. The new head has not executed its upstream product matrix: Cross-platform CI 34687029104 and React Doctor 34687029091 both require maintainer approval.

Could a maintainer approve those reviewed-head executions and decide the integration order for the shared baseline repairs: Cline inventories here, Devin paths in #4384, pnpm shims in #4379, and native restore fixture alignment in #4380? The authored follow-ups have been rebased and their changed-area checks pass, but each independent head still lacks the sibling fixes. A maintainer-managed integration/landing plan can break that dependency cycle without duplicating unrelated patches into every PR.

The latest-dev and resolved-findings checklist items are complete. Full-CI and Ready remain unchecked until the corresponding evidence exists; no readiness override or merge approval is claimed.

@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • UI screenshot required.

What to do

  • Add a screenshot of the UI change to the PR description.
  • Tick all four boxes in the PR description once you're done (currently 2/4).

Review readiness checklist

  • ⬜ All CI tests are green on my local testing.
  • ✅ I pushed my PR to the latest dev commit.
  • ✅ I resolved all correct Codex and CodeRabbit findings.
  • ⬜ My PR is ready for review.

2/4 boxes ticked.

This pull request was already a draft. Its draft status will be preserved after every issue above is resolved.
@luvs01 Tick the boxes once your local CI is green, your branch is on the latest dev commit, and every correct Codex and CodeRabbit finding is resolved.

Hygiene

Deterministic PR hygiene checks passed.

@luvs01
luvs01 force-pushed the agent/cline-registration-followup-20260912 branch from 5990da5 to 18aba46 Compare September 12, 2026 09:53
@lidge-jun

Copy link
Copy Markdown
Owner

Landed via #4390 at 20861ae

Cline registration follow-through (help count 15, localization/registry/test-layout inventories) is already on dev via the integration-fixtures landing. Closing this original as superseded.

이 댓글은 grok-bot이 작성했습니다

@lidge-jun lidge-jun added the landed-via-maintainer Original PR closed after landing via a maintainer merge train label Sep 12, 2026
@lidge-jun lidge-jun closed this Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working landed-via-maintainer Original PR closed after landing via a maintainer merge train

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants