Skip to content

chore(license): 코드 MIT + clones/ CC BY-NC-SA 4.0 분리#49

Merged
4entrepreneur merged 1 commit into
mainfrom
hy/license-split
May 5, 2026
Merged

chore(license): 코드 MIT + clones/ CC BY-NC-SA 4.0 분리#49
4entrepreneur merged 1 commit into
mainfrom
hy/license-split

Conversation

@4entrepreneur

Copy link
Copy Markdown
Collaborator

Summary

  • 단일 MIT였던 라이센스를 코드(MIT) + 클론 콘텐츠(CC BY-NC-SA 4.0) 로 분리
  • clones/는 외부 인터뷰·발언을 요약·재구성한 저작물이라 저작자/출처 표기 의무가 필요 — 표기(BY) + 비상업(NC) + 동일 라이선스 공유(SA) 조건 부여
  • 표기 정책은 clones/NOTICE.md 한 곳에 집약, 실제 출처는 기존 knowledge/*.md frontmatter의 source_url 필드 의존
  • npm 패키지에 clones/가 함께 배포되므로 package.json license 필드를 SPDX (MIT AND CC-BY-NC-SA-4.0)로 표기

Changes

파일 변경
LICENSE (수정) 상단에 적용범위 헤더 추가 — MIT는 코드에만 적용, clones/는 별도 라이선스임을 명시
clones/LICENSE (신규) CC BY-NC-SA 4.0 공식 풀 텍스트 + 헤더
clones/NOTICE.md (신규) 라이선스, 표기 방법, 콘텐츠 분류(persona vs knowledge), 비상업/SA 조건, 옵트아웃 절차
README.md MIT 배지 → MIT(코드) + CC BY-NC-SA 4.0(콘텐츠) 두 배지로 분리, 라이선스 섹션 신설
CONTRIBUTING.md "라이선스 동의" 단락 추가 — 코드 PR은 MIT, clones/ PR은 CC BY-NC-SA 4.0 동의
CLAUDE.md Invariants에 "License separation" 가드 추가
package.json license: "MIT""(MIT AND CC-BY-NC-SA-4.0)"

Test plan

  • npm pack --dry-runclones/LICENSE(21.9kB), clones/NOTICE.md(5.2kB), 루트 LICENSE 모두 패키지에 포함 확인
  • npx markdownlint-cli2 — 변경된 4개 markdown 파일 통과
  • node .github/scripts/validate-skill.ts — 통과
  • node .github/scripts/validate-clones.ts — 통과
  • CI(validate.yml) 통과 확인 (typecheck/build/test 포함)
  • GitHub에서 README의 두 라이선스 배지 정상 렌더 확인

🤖 Generated with Claude Code

clones/ 디렉토리의 페르소나·지식 파일은 외부 인터뷰·발언을 요약·재구성한
저작물이므로 코드용 MIT만으로는 저작자/출처 표기 의무가 전달되지 않는다.
코드와 콘텐츠의 라이센스를 명시적으로 분리한다.

- 코드(저장소 전반): MIT 유지
- 클론 콘텐츠(clones/**): CC BY-NC-SA 4.0 신규 적용
- 루트 LICENSE 상단에 적용범위 헤더 추가
- clones/LICENSE: CC BY-NC-SA 4.0 공식 풀 텍스트 + 헤더
- clones/NOTICE.md: 표기 정책, 콘텐츠 분류, 옵트아웃 안내
- README/CONTRIBUTING/CLAUDE.md: 라이센스 분리 명시 + 배지 분리
- package.json: SPDX "(MIT AND CC-BY-NC-SA-4.0)"

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vkehfdl1

vkehfdl1 commented May 5, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the contribution! 🙏

This repository's automation only reviews pull requests that target the dev branch (this PR currently targets main). Please change the base branch to dev so dani can pick it up for automated review.

GitHub UI → click "Edit" next to the PR title → change the base branch to dev, then push (or reopen) the PR.

@4entrepreneur
4entrepreneur merged commit ca3cb11 into main May 5, 2026
1 check passed
4entrepreneur added a commit that referenced this pull request May 5, 2026
PR #49(라이선스 분리: code MIT + clones/ CC BY-NC-SA 4.0)가 main의 옛 CLAUDE.md에 'License separation' 섹션을 추가했음. 본 브랜치는 CLAUDE.md를 @AGENTS.md 임포트 스텁으로 바꿨으므로 충돌 발생.

해소:
- CLAUDE.md → @AGENTS.md 스텁 유지 (SSOT 원칙)
- AGENTS.md → 'Standalone skill, not a plugin' 다음에 동일한 'License separation' 섹션을 그대로 포팅 (PR #49가 의도한 위치)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4entrepreneur added a commit that referenced this pull request May 5, 2026
npm install regenerated the lockfile to reflect the dual MIT/CC-BY-NC-SA-4.0
license string introduced on main in #49.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4entrepreneur added a commit that referenced this pull request May 5, 2026
Pulls AGENTS.md SSOT (#47) and split-license (#49) onto the citation-fix branch.
4entrepreneur added a commit that referenced this pull request May 5, 2026
* feat(cli): add --use-claude-code-auth for Claude Pro/Max subscription OAuth

Mirrors the existing --use-codex-auth path: reads OAuth tokens from the
macOS keychain entry "Claude Code-credentials" or ~/.claude/.credentials.json,
auto-refreshes near-expiry tokens against console.anthropic.com, and routes
chat through @ai-sdk/anthropic with the OAuth-required anthropic-beta header,
?beta=true on /v1/messages, and the Claude Code identity system-prompt prefix
that Anthropic rejects requests without.

Adds the --use-claude-auth alias and OPENCLONE_USE_CLAUDE_CODE_AUTH /
OPENCLONE_USE_CLAUDE_AUTH env switches. Tokens never leave their original
storage; refreshed values are written back in place.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(cli): unblock Claude Code OAuth — force claude-cli UA, OAuth-only betas, two-block system

Anthropic returns a generic 429 rate_limit_error (with response headers
showing utilization < 1.0) when the OAuth request shape doesn't look like
Claude Code itself, even on accounts nowhere near their cap. Three things
were leaking the AI SDK's identity through:

- @ai-sdk/anthropic preset User-Agent to ai-sdk/anthropic/<ver>; the
  conditional override never fired. Force it to claude-cli/2.1.87 (external, cli).
- The SDK appended structured-outputs-2025-11-13 to anthropic-beta on top
  of our two OAuth betas. OAuth tokens reject any beta beyond
  oauth-2025-04-20 / interleaved-thinking-2025-05-14. Replace the header
  outright instead of merging.
- The system prompt was sent as a single content block with the Claude
  Code identity and the persona joined by \n\n. Anthropic's OAuth path
  validates that the first system block is exactly the identity. Split
  into two text blocks at the fetch-wrapper layer.

Also strips x-stainless-* fingerprint headers and adds OPENCLONE_DEBUG_HTTP=1
debug logging so future rate_limit_error 429s can be diagnosed without
guessing. Verified live: `node dist/cli/index.js chat douglas
--use-claude-code-auth --prompt "1+1?"` now returns 200 with utilization
headers showing 5h=0.34, 7d=0.22.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: sync package-lock.json license field after LICENSE split

npm install regenerated the lockfile to reflect the dual MIT/CC-BY-NC-SA-4.0
license string introduced on main in #49.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
4entrepreneur added a commit that referenced this pull request May 5, 2026
main 머지 (#49 split-license) 이후 npm install 이 lockfile 의
license 필드를 "(MIT AND CC-BY-NC-SA-4.0)" 로 갱신.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4entrepreneur added a commit that referenced this pull request May 5, 2026
* fix: 클론 답변에서 [1] 출처 표기가 사라지던 문제 복구

증상: Claude Code `/openclone` 와 스탠드얼론 CLI 모두에서 클론 답변에
`[1]` `[2]` 출처 인용이 어느 순간부터 등장하지 않음. 모델이 escape hatch
("persona voice / common knowledge 인용 스킵", "encoding 어려우면 스킵")
를 통째로 적용해 인용 자체를 빠뜨리는 패턴.

수정:
- `hooks/inject-active-clone.sh`: contract 를 imperative 하게 다시 씀
  (MUST cite, "zero citations is rarely correct", escape hatch 좁힘,
  rule (4) 를 인용 자체 스킵 대신 prose 인용으로 변경). bash 변수로 추출해
  room/active-clone 두 곳을 한 정의에서 동기화.
- `src/lib/citation-contract.ts` (신규): CLI 가 import 하는 contract 모듈.
  `src/lib/prompt-renderer.ts` 의 한 줄짜리 가이드를 동일 contract 로 교체.
- `src/ui/Markdown.tsx`: link 렌더러가 visible text 1-2자리 숫자인 경우
  footnote-style 로 인식해 `(URL)` 인라인 노출 없이 OSC 8 hyperlink 로 감쌈.
  미지원 터미널은 plain `[1]` 로 보임.
- `test/ink-render.mjs`: stripAnsi 가 OSC 시퀀스도 처리하도록 확장.
- `test/markdown-render.test.mjs`: 인용 렌더링 케이스 2개 추가.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: package-lock.json license 필드를 package.json 과 동기화

main 머지 (#49 split-license) 이후 npm install 이 lockfile 의
license 필드를 "(MIT AND CC-BY-NC-SA-4.0)" 로 갱신.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.

2 participants