Skip to content

feat(clp-s): Add support for searching KV-pair IR streams through the clp-s cli.#909

Merged
LinZhihao-723 merged 37 commits into
y-scope:mainfrom
LinZhihao-723:kvir-search-clp-s
May 22, 2025
Merged

feat(clp-s): Add support for searching KV-pair IR streams through the clp-s cli.#909
LinZhihao-723 merged 37 commits into
y-scope:mainfrom
LinZhihao-723:kvir-search-clp-s

Conversation

@LinZhihao-723

@LinZhihao-723 LinZhihao-723 commented May 16, 2025

Copy link
Copy Markdown
Member

Description

References

Overview

This PR adds cli support for searching KV-IR streams through the clp-s executable. It is built on top of the current clp-s search utilities, assuming that the input path that contains .clp.zst will be considered an IR file.

As the first PR to support KV-IR search, the current implementation has the following limitations:

  • The current IR search only supports for stdout output. The current implementation can be extended to support other output methods when needed.
  • The current IR search doesn't support projection. This will be resolved by implementing Add support for projection in clp::ffi::KeyValuePairLogEvent. #905.
  • The current IR search doesn't support any count operations.
  • The current IR search doesn't support timestamp filtering, as we don't have a way to specify an authoritative timestamp in a KV-IR stream yet.

Some behaviours to notice:

  • The search result is formatted a JSON string that has the following schema: {"auto_generated_kv_pairs":{xxx},"user_generated_kv_pairs":{xxx}}.
  • Input-wise, the current implementation supports both reading from a file in local FS and reading through the network reader with proper authentication.
  • When failing to read the input as a KV-IR stream, even if the input path contains .clp.zst, we will fall back to archive search just in case the file path of the archive unintentionally contains the IR extension.
  • We don't fail on truncated IR streams since the searched file might be an ongoing IR stream. This provides compatibility for real-time search.

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

  • Ensure all workflows passed.
  • Ensure searching an IR file from the local file system works as expected.
  • Ensure searching an IR file served by a local-host server works as expected.
  • Ensure searching an archive with .clp.zst in its path works as expected (will actually perform archive search).
  • Esnrue searching truncated IR streams only returns warnings, but not errors.

Summary by CodeRabbit

  • New Features

    • Added support for searching key-value IR streams, including improved error handling and output to standard output.
    • Enhanced input detection to automatically perform IR stream searches when applicable.
  • Bug Fixes

    • Improved handling of various error scenarios during IR stream processing, with clear warnings and fallbacks.
  • Chores

    • Updated build configuration to include new search-related files and dependencies.

@LinZhihao-723 LinZhihao-723 requested review from a team, gibber9809 and wraymo as code owners May 16, 2025 00:07
@coderabbitai

coderabbitai Bot commented May 16, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This change introduces a key-value IR stream search feature to the clp_s component. It adds new source and header files for search logic, error handling, and query processing, updates the build configuration, and integrates the search into the main input-processing loop with detailed error handling and fallbacks.

Changes

File(s) Change Summary
components/core/src/clp_s/CMakeLists.txt Updated build configuration to include new search-related source and header files, added dependencies, and linked the ystdlib::error_handling library.
components/core/src/clp_s/clp-s.cpp Modified main input loop to detect IR files, attempt key-value IR stream search using search_kv_ir_stream, handle errors with specific logic, and fall back to archive search as needed. Added necessary includes and using declarations.
components/core/src/clp_s/kv_ir_search.cpp New implementation file for deserializing and searching key-value IR streams. Defines error handling, stream processing, log event handling, and integrates with spdlog for logging. Provides public API for IR stream search with detailed error codes and extensibility for future features.
components/core/src/clp_s/kv_ir_search.hpp New header declaring error codes, error category, and the search_kv_ir_stream function. Documents error conditions and integrates with the error handling system.
.../clp/ffi/ir_stream/search/ast_evaluation_result.hpp, .../ffi/ir_stream/search/query_handler.hpp, .../ffi/ir_stream/search/util.hpp, .../ffi/ir_stream/search/error_code.hpp, .../ffi/ir_stream/search/ast_evaluation_result.cpp, .../ffi/ir_stream/search/query_handler.cpp, .../ffi/ir_stream/search/util.cpp Added to build configuration for use in IR stream search logic; implement AST evaluation, query handling, utility functions, and error codes for search functionality.
../clp/ir/constants.hpp Added to build configuration for access to IR constants in new search logic.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant clp-s (main)
    participant search_kv_ir_stream
    participant StreamReader
    participant ZstdDecompressor
    participant Deserializer
    participant IrUnitHandler

    User->>clp-s (main): Provide input file(s)
    clp-s (main)->>clp-s (main): Detect IR file extension
    alt Is IR file
        clp-s (main)->>search_kv_ir_stream: Attempt IR stream search
        search_kv_ir_stream->>StreamReader: Open input path
        search_kv_ir_stream->>ZstdDecompressor: Wrap stream reader
        search_kv_ir_stream->>Deserializer: Create and start deserialization
        Deserializer->>IrUnitHandler: Process IR units (log events, etc.)
        IrUnitHandler->>clp-s (main): Output results to stdout
        Deserializer-->>search_kv_ir_stream: Return status
        search_kv_ir_stream-->>clp-s (main): Return outcome
        alt Success
            clp-s (main)->>clp-s (main): Continue to next input
        else Truncated or unsupported
            clp-s (main)->>clp-s (main): Log warning, fallback to archive search
        else Fatal error
            clp-s (main)->>clp-s (main): Log error, exit
        end
    else Not IR file
        clp-s (main)->>clp-s (main): Proceed with archive search
    end
Loading

Possibly related PRs

Suggested reviewers

  • gibber9809
  • kirkrodrigues

Note

⚡️ AI Code Reviews for VS Code, Cursor, Windsurf

CodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback.
Learn more here.


Note

⚡️ Faster reviews with caching

CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 30th. To opt out, configure Review - Disable Cache at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the Data Retention setting under your Organization Settings.
Enjoy the performance boost—your workflow just got faster.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f513989 and 44fb545.

📒 Files selected for processing (2)
  • components/core/src/clp_s/clp-s.cpp (4 hunks)
  • components/core/src/clp_s/kv_ir_search.cpp (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}`: - Prefer `false == ` rather than `!`.

**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}: - Prefer false == <expression> rather than !<expression>.

  • components/core/src/clp_s/clp-s.cpp
  • components/core/src/clp_s/kv_ir_search.cpp
⏰ Context from checks skipped due to timeout of 90000ms (10)
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: build-macos (macos-15, true)
  • GitHub Check: build-macos (macos-13, true)
  • GitHub Check: build-macos (macos-13, false)
  • GitHub Check: build-macos (macos-14, false)
  • GitHub Check: build-macos (macos-14, true)
✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 14

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 13bb824 and 48e3808.

📒 Files selected for processing (11)
  • components/core/CMakeLists.txt (1 hunks)
  • components/core/src/clp/ffi/ir_stream/Deserializer.hpp (9 hunks)
  • components/core/src/clp/ffi/ir_stream/search/QueryHandlerReq.hpp (1 hunks)
  • components/core/src/clp/ffi/ir_stream/search/test/test_deserializer_integration.cpp (1 hunks)
  • components/core/src/clp/ffi/ir_stream/search/test/utils.hpp (3 hunks)
  • components/core/src/clp_s/CMakeLists.txt (4 hunks)
  • components/core/src/clp_s/clp-s.cpp (4 hunks)
  • components/core/src/clp_s/kv_ir_search.cpp (1 hunks)
  • components/core/src/clp_s/kv_ir_search.hpp (1 hunks)
  • components/core/tests/test-ir_encoding_methods.cpp (2 hunks)
  • taskfiles/lint.yaml (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}`: - Prefer `false == ` rather than `!`.

**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}: - Prefer false == <expression> rather than !<expression>.

  • components/core/tests/test-ir_encoding_methods.cpp
  • components/core/src/clp/ffi/ir_stream/search/QueryHandlerReq.hpp
  • components/core/src/clp_s/kv_ir_search.hpp
  • components/core/src/clp_s/clp-s.cpp
  • components/core/src/clp_s/kv_ir_search.cpp
  • components/core/src/clp/ffi/ir_stream/search/test/test_deserializer_integration.cpp
  • components/core/src/clp/ffi/ir_stream/search/test/utils.hpp
  • components/core/src/clp/ffi/ir_stream/Deserializer.hpp
🧠 Learnings (1)
components/core/tests/test-ir_encoding_methods.cpp (1)
Learnt from: LinZhihao-723
PR: y-scope/clp#570
File: components/core/tests/test-ir_encoding_methods.cpp:376-399
Timestamp: 2024-11-01T03:26:26.386Z
Learning: In the test code (`components/core/tests/test-ir_encoding_methods.cpp`), exception handling for `msgpack::unpack` can be omitted because the Catch2 testing framework captures exceptions if they occur.
🧬 Code Graph Analysis (1)
components/core/tests/test-ir_encoding_methods.cpp (1)
components/core/src/clp/ffi/ir_stream/search/test/utils.hpp (3)
  • unpack_and_serialize_msgpack_bytes (122-126)
  • unpack_and_serialize_msgpack_bytes (149-186)
  • unpack_and_serialize_msgpack_bytes (149-153)
🪛 Cppcheck (2.10-2)
components/core/src/clp_s/kv_ir_search.cpp

[error] 245-245: Syntax Error

(internalAstError)

components/core/src/clp/ffi/ir_stream/search/test/test_deserializer_integration.cpp

[error] 245-245: Syntax Error

(internalAstError)

⏰ Context from checks skipped due to timeout of 90000ms (10)
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: build-macos (macos-14, false)
  • GitHub Check: build-macos (macos-15, false)
  • GitHub Check: build-macos (macos-13, false)
  • GitHub Check: build-macos (macos-15, true)
  • GitHub Check: build-macos (macos-14, true)
🔇 Additional comments (8)
taskfiles/lint.yaml (2)

168-170: Appropriate suppression of known msgpack-c clang-tidy warning

The -line-filter entry excludes cpp11_zone.hpp:197, working around msgpack-c issue #1098. This prevents spurious warnings during the diff-based analysis.


756-758: Consistent lint suppression across full analysis

Mirroring the same -line-filter in check-cpp-static-full ensures both diff and full clang-tidy runs remain aligned and ignore the same msgpack-c issue.

components/core/src/clp_s/CMakeLists.txt (1)

259-260: Linking against ystdlib::error_handling looks correct

Nice catch adding the new target – this guarantees the category singleton used by KvIrSearchError is properly linked.

components/core/src/clp/ffi/ir_stream/search/QueryHandlerReq.hpp (1)

41-45: Concept is well-defined and future-proof

The QueryHandlerReq concept cleanly captures the intended constraints (empty handler OR recognised handler + move-constructible). This will make downstream template diagnostics far clearer than relying on SFINAE alone.

components/core/src/clp_s/kv_ir_search.hpp (1)

24-45: Verify Path is in scope

Path is used in the function signature but is not declared in this header. It is probably brought in via InputConfig.hpp, yet relying on transitive includes makes the header fragile.

Please either

  1. #include "Path.hpp" (or whichever header owns the alias), or
  2. forward-declare it (class Path;) if inclusion would form a cycle.

This prevents accidental breakage when include order changes.

components/core/src/clp_s/kv_ir_search.cpp (2)

130-149: Good guard against unsupported output modes

Fail-fast validation inside IrUnitHandler::create is clear and emits actionable log messages.


244-255: Static analysis “syntax error” is likely a false positive

Cppcheck flagged a syntax error around here, but the code is syntactically valid C++17/20. No action required unless the CI build reproduces the issue.

🧰 Tools
🪛 Cppcheck (2.10-2)

[error] 245-245: Syntax Error

(internalAstError)

components/core/src/clp/ffi/ir_stream/Deserializer.hpp (1)

309-316: Filtered-out events are reported as IrUnitType::LogEvent – confirm caller expectations

When the query handler evaluates to False, the switch break; skips handle_log_event, yet the outer function still returns IrUnitType::LogEvent. Callers may interpret this as “a log event was delivered”.

If downstream logic counts or otherwise uses the return value to track processed records, this could lead to under- or over-counting.

Please verify whether the caller relies on this signal. If suppression is required, returning a dedicated enum (e.g., IrUnitType::FilteredOut) or IrUnitType::NoOp might be clearer.

Comment thread components/core/CMakeLists.txt
Comment thread components/core/src/clp_s/CMakeLists.txt
Comment thread components/core/tests/test-ir_encoding_methods.cpp
Comment thread components/core/tests/test-ir_encoding_methods.cpp
Comment thread components/core/src/clp_s/clp-s.cpp
Comment thread components/core/src/clp_s/kv_ir_search.cpp
Comment thread components/core/src/clp/ffi/ir_stream/Deserializer.hpp

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

♻️ Duplicate comments (2)
components/core/src/clp_s/kv_ir_search.hpp (1)

33-38: Fix enum name in the Doxygen comment

The comment refers to KvIrStreamErrorEnum, but the actual enum is KvIrSearchErrorEnum. The mismatch will confuse users and IDE intellisense.

- * - KvIrStreamErrorEnum::ClpLegacyError if a `clp::TraceableException` is caught.
- * - KvIrStreamErrorEnum::CountSupportNotImplemented if count-related features are enabled.
- * - KvIrStreamErrorEnum::ProjectionSupportNotImplemented if projection is non-empty.
- * - KvIrStreamErrorEnum::StreamReaderCreationFailure if the stream reader cannot be successfully
+ * - KvIrSearchErrorEnum::ClpLegacyError if a `clp::TraceableException` is caught.
+ * - KvIrSearchErrorEnum::CountSupportNotImplemented if count-related features are enabled.
+ * - KvIrSearchErrorEnum::ProjectionSupportNotImplemented if projection is non-empty.
+ * - KvIrSearchErrorEnum::StreamReaderCreationFailure if the stream reader cannot be successfully
components/core/src/clp_s/kv_ir_search.cpp (1)

230-233: Minor: consider early-exit without while-loop

Once deserialize_next_ir_unit returns EndOfStream, the loop condition is re-evaluated and exits. Converting to a for (;;) or while (true) with an internal break after EOS can slightly improve readability, but this is purely stylistic.

-    while (IrUnitType::EndOfStream
-           != OUTCOME_TRYX(deserializer.deserialize_next_ir_unit(stream_reader)))
-    {}
+    for (;;) {
+        auto ir_unit_type = OUTCOME_TRYX(deserializer.deserialize_next_ir_unit(stream_reader));
+        if (IrUnitType::EndOfStream == ir_unit_type) {
+            break;
+        }
+    }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 48e3808 and f513989.

📒 Files selected for processing (2)
  • components/core/src/clp_s/kv_ir_search.cpp (1 hunks)
  • components/core/src/clp_s/kv_ir_search.hpp (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}`: - Prefer `false == ` rather than `!`.

**/*.{cpp,hpp,java,js,jsx,tpp,ts,tsx}: - Prefer false == <expression> rather than !<expression>.

  • components/core/src/clp_s/kv_ir_search.hpp
  • components/core/src/clp_s/kv_ir_search.cpp
🪛 Cppcheck (2.10-2)
components/core/src/clp_s/kv_ir_search.cpp

[error] 245-245: Syntax Error

(internalAstError)

⏰ Context from checks skipped due to timeout of 90000ms (11)
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: lint-check (ubuntu-latest)
  • GitHub Check: build-macos (macos-14, false)
  • GitHub Check: build-macos (macos-15, true)
  • GitHub Check: build-macos (macos-13, false)
  • GitHub Check: build-macos (macos-13, true)
  • GitHub Check: build-macos (macos-14, true)
🔇 Additional comments (4)
components/core/src/clp_s/kv_ir_search.cpp (4)

209-219: LGTM: Query handler creation follows coding guidelines

The query handler creation code correctly follows the coding guideline of using false == <expression> rather than !<expression> at line 217, making the code more readable and consistent.


244-247: LGTM: Projection validation follows coding guidelines

The projection validation code correctly follows the coding guideline of using false == <expression> rather than !<expression> at line 244, making the code more readable and consistent.

🧰 Tools
🪛 Cppcheck (2.10-2)

[error] 245-245: Syntax Error

(internalAstError)


80-85: LGTM: UTC offset change handling is correct

Good implementation of the handle_utc_offset_change function. It correctly returns IRErrorCode::IRErrorCode_Success instead of an error code, allowing the deserializer to continue processing streams with legitimate timezone transitions without interruption.


159-192:

Details

❌ Incorrect review comment

Review error handling strategy for JSON serialization

The current implementation returns IRErrorCode_Decode_Error or IRErrorCode_Corrupted_IR depending on which part of the serialization fails. Consider if these should be distinct error codes to aid debugging, or if they should be consolidated for consistency.

Additionally, the logger outputs to the error stream, but the code continues processing other log events. Consider if this is the intended error recovery strategy.


🏁 Script executed:

#!/bin/bash
# Look for similar error handling patterns in the codebase
rg -A 3 "IRErrorCode::IRErrorCode_(Decode_Error|Corrupted_IR)" --glob "*.{cpp,hpp}"

Length of output: 8724


Error codes and recovery strategy are intentional and consistent

The distinction between IRErrorCode::IRErrorCode_Decode_Error (for JSON parse failures) and IRErrorCode::IRErrorCode_Corrupted_IR (for downstream serialization issues) is documented and exercised in components/core/tests/test-ir_encoding_methods.cpp. The pattern of logging the error and returning to continue processing further events matches other IR handlers and is intended for non-fatal errors. No changes needed.

Likely an incorrect or invalid review comment.

Comment thread components/core/src/clp_s/kv_ir_search.cpp
Comment thread components/core/src/clp_s/kv_ir_search.cpp
Comment thread components/core/src/clp_s/kv_ir_search.cpp
Comment thread components/core/src/clp_s/kv_ir_search.cpp

@gibber9809 gibber9809 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just a few minor comments, but change mostly looks good.

Comment thread components/core/src/clp_s/kv_ir_search.cpp Outdated
Comment thread components/core/src/clp_s/kv_ir_search.cpp Outdated
Comment thread components/core/src/clp_s/clp-s.cpp Outdated
@LinZhihao-723 LinZhihao-723 requested a review from gibber9809 May 22, 2025 01:18

@gibber9809 gibber9809 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM. Maybe for the title
feat(clp-s): Add support for searching KV-pair IR streams through the clp-s cli.

Looking through our past commit messages seems like we usually call it "KV-pair IR format" or "KV-pair IR stream" instead of the shorter "KV-IR".

@LinZhihao-723

Copy link
Copy Markdown
Member Author

LGTM. Maybe for the title feat(clp-s): Add support for searching KV-pair IR streams through the clp-s cli.

Looking through our past commit messages seems like we usually call it "KV-pair IR format" or "KV-pair IR stream" instead of the shorter "KV-IR".

Sure. Let's keep using "KV-pair IR streams" for this PR to be explicit. In the future PRs, we might use KV-IR in short since it will be the official short form (not IRv2, lol).

@LinZhihao-723 LinZhihao-723 changed the title feat(clp-s): Add support for searching KV-IR streams through clp-s cli. feat(clp-s): Add support for searching KV-pair IR streams through the clp-s cli. May 22, 2025
@LinZhihao-723 LinZhihao-723 merged commit c237d67 into y-scope:main May 22, 2025
22 checks passed
junhaoliao pushed a commit to junhaoliao/clp that referenced this pull request May 17, 2026
… clp-s cli. (y-scope#909)

Co-authored-by: kirkrodrigues <2454684+kirkrodrigues@users.noreply.github.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