Skip to content

Conversation

@toothlessdev
Copy link
Owner

📎 Related issues

📦 Scope

  • @patchlogr/core
  • @patchlogr/cli
  • @patchlogr/oas
  • @patchlogr/inspector
  • @patchlogr/types
  • docs, examples
  • tests
  • ci / cd / infra
  • other (아래에 명시)

📌 Summary

  • 파티셔닝시 CanonicalOperation 을 blob object 로 리턴하도록 수정
  • HashObject, HashNode 타입 폴더로 분리

🧠 Context

  • 추후 Blob Object 는 s3, dynamodb 와 같은 blob storage 에 저장하고, 해시트리만 별도로 저장하기 위함

⚠️ Impact

  • No Breaking Changes
  • Breaking Change
  • Versioning 영향 있음 (major)
  • 내부 리팩토링만 포함

✅ Checklist

  • 요구사항 명세 충족
  • 테스트 추가 / 수정
  • deterministic output 확인

@toothlessdev toothlessdev self-assigned this Jan 30, 2026
@toothlessdev toothlessdev added the enhancement New feature or request label Jan 30, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @toothlessdev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 풀 리퀘스트는 @patchlogr/core 내의 파티셔닝 로직을 리팩토링하여 CanonicalOperation 데이터를 해시 트리 구조와 분리합니다. 이는 PartitionedSpec 반환 타입에 hashObjects 배열을 도입하여 CanonicalOperation을 해시로 매핑된 블롭 객체로 저장함으로써 달성됩니다. 이 변경은 블롭 객체를 S3 또는 DynamoDB와 같은 외부 스토리지에 저장하고 해시 트리만 내부적으로 유지하기 위한 시스템 준비 작업입니다.

Highlights

  • CanonicalOperation 블롭 객체 반환: 파티셔닝 시 CanonicalOperation을 블롭 객체로 반환하도록 수정되었습니다. 이는 CanonicalOperation 데이터가 해시 트리 구조와 분리되어 외부 스토리지에 저장될 수 있도록 합니다.
  • 타입 정의 분리: HashObject 및 HashNode 타입이 각각의 전용 파일로 분리되어 코드 구조가 개선되었습니다.
  • 파티셔닝 함수 업데이트: partitionByMethod 및 partitionByTag 함수가 이제 hashObjects를 반환하며, 리프 노드에는 더 이상 value가 직접 포함되지 않습니다. 대신 해시를 통해 블롭 객체를 참조합니다.
  • 테스트 케이스 추가: 새로운 로직의 정확성을 보장하기 위해 hashObjects 반환, 리프 노드의 value 부재, CanonicalOperation 매핑에 대한 테스트 케이스가 추가되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link

Test Results

110 tests   110 ✅  2s ⏱️
 20 suites    0 💤
  3 files      0 ❌

Results for commit 35cf528.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이 PR은 파티셔닝 로직을 리팩토링하여 CanonicalOperation을 해시 트리에서 분리하고 별도의 hashObjects로 반환하도록 수정한 점이 인상적입니다. 이는 향후 데이터와 해시 트리를 별도로 저장하려는 목표에 잘 부합하는 좋은 구조적 개선입니다. 파일 구조를 typesutils로 정리한 것도 코드의 모듈성을 높이는 좋은 변경입니다.

리뷰에서는 주로 새로 추가된 테스트 코드의 중복을 줄이고, HashNode 타입의 안정성을 높이는 방안에 대한 몇 가지 제안을 포함했습니다. 전반적으로 훌륭한 변경이라고 생각합니다.

@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Files with missing lines Coverage Δ
.../patchlogr-core/src/partition/partitionByMethod.ts 100.00% <100.00%> (ø)
...ges/patchlogr-core/src/partition/partitionByTag.ts 100.00% <100.00%> (ø)
...s/patchlogr-core/src/partition/utils/createNode.ts 22.22% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@toothlessdev toothlessdev merged commit a60774e into develop Jan 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement partitioning logic to save blob to external storage

3 participants