Skip to content

Add ellipsis command-line option#95

Merged
leynos merged 5 commits intomainfrom
codex/add-commandline-option-ellipsis
Jul 18, 2025
Merged

Add ellipsis command-line option#95
leynos merged 5 commits intomainfrom
codex/add-commandline-option-ellipsis

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Jul 17, 2025

Summary

  • add ellipsis module to replace ... with the Unicode ellipsis
  • expose new --ellipsis CLI flag
  • update documentation and module diagram
  • cover feature with unit and behavioural tests
  • test long dot sequences are grouped correctly

Testing

  • make fmt
  • make lint
  • make test
  • make markdownlint
  • make nixie

https://chatgpt.com/codex/tasks/task_e_68797c95ec4c832285890f6b5ce9b73a

Summary by Sourcery

Add ellipsis command-line option to replace sequences of three dots with the Unicode ellipsis character

New Features:

  • Introduce ellipsis module with replace_ellipsis function that normalises textual ellipses outside code spans and fences
  • Add --ellipsis flag to the CLI to enable ellipsis replacement

Enhancements:

  • Integrate ellipsis processing into the main processing pipeline

Documentation:

  • Update module diagram and README to document the ellipsis feature

Tests:

  • Add unit tests for ellipsis logic
  • Add integration test for the --ellipsis CLI flag

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Jul 17, 2025

Reviewer's Guide

This PR introduces a new ellipsis module that replaces '...' with the Unicode ellipsis character, exposes a --ellipsis flag in the CLI to apply this transformation in the processing pipeline, and updates documentation and tests to cover the feature.

Entity relationship diagram for FormatOpts struct update

erDiagram
    FORMATOPTS {
        BOOL wrap
        BOOL renumber
        BOOL breaks
        BOOL ellipsis
    }
Loading

Class diagram for the new ellipsis module and CLI integration

classDiagram
    class ellipsis {
        <<module>>
        +replace_ellipsis(lines: &[String]) Vec<String>
    }
    class wrap {
        <<module>>
        +is_fence(line: &str) bool
        +tokenize_markdown(line: &str) Vec<String>
    }
    class Cli {
        +FormatOpts
    }
    class FormatOpts {
        +wrap: bool
        +renumber: bool
        +breaks: bool
        +ellipsis: bool
    }
    class process_lines {
        +process_lines(lines: &[String], opts: FormatOpts) Vec<String>
    }
    process_lines ..> ellipsis : uses replace_ellipsis
    ellipsis ..> wrap : uses is_fence, tokenize_markdown
    Cli o-- FormatOpts
Loading

File-Level Changes

Change Details Files
Introduce ellipsis module for normalizing textual ellipses
  • Add src/ellipsis.rs implementing replace_ellipsis with fence and code span awareness
  • Integrate tokenize_markdown and is_fence to skip code regions
  • Add unit tests for simple text, code spans, fenced blocks, and long dot sequences
  • Register ellipsis module in lib.rs
src/ellipsis.rs
src/lib.rs
Expose and integrate --ellipsis CLI flag
  • Add ellipsis boolean field to FormatOpts with clap annotation
  • Apply replace_ellipsis in process_lines when opts.ellipsis is true
  • Allow clippy::struct_excessive_bools for CLI options
src/main.rs
Add integration test for ellipsis CLI behavior
  • Create test_cli_ellipsis_option to verify output of foo... → foo… via CLI
tests/integration.rs
Update documentation and module diagrams
  • Add ellipsis node and relationships in module-relationships.md class diagram
  • Update README.md CLI usage and description for --ellipsis flag
docs/module-relationships.md
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jul 17, 2025

Summary by CodeRabbit

  • New Features
    • Introduced a new command-line option (--ellipsis) to automatically replace groups of three consecutive dots with the ellipsis character, while preserving code formatting in markdown.
    • Added support for ellipsis replacement in the library API via an additional option.
  • Documentation
    • Updated usage instructions and module documentation to reflect the new ellipsis functionality and API changes.
  • Tests
    • Added integration tests to verify correct ellipsis replacement and preservation within code spans and fenced code blocks.

Walkthrough

Expand the command-line tool with a new --ellipsis option that replaces sequences of three dots with the ellipsis character, ensuring this transformation does not affect code blocks or inline code. Update documentation, module relationships, and integration tests to reflect and verify this new functionality.

Changes

File(s) Change Summary
README.md Document the new --ellipsis command-line option in usage and options sections.
docs/module-relationships.md Add the ellipsis module and its function to diagrams and descriptions; update module exports.
src/ellipsis.rs Introduce the ellipsis module with replace_ellipsis() to process text while preserving code.
src/lib.rs Declare and document the new public ellipsis module.
src/main.rs Add ellipsis flag to CLI, integrate replace_ellipsis into processing, update help text.
tests/integration.rs Add integration test for the --ellipsis CLI option.
src/process.rs Modify processing functions to accept ellipsis flag and apply ellipsis replacement optionally.
src/wrap.rs Rewrite markdown tokenizer to produce structured tokens including fenced blocks and inline code.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant ellipsis
    User->>CLI: Run mdtablefix with --ellipsis
    CLI->>CLI: Parse input and options
    CLI->>CLI: Process lines (wrap, renumber, breaks)
    alt --ellipsis flag enabled
        CLI->>ellipsis: replace_ellipsis(lines)
        ellipsis-->>CLI: Return processed lines
    end
    CLI-->>User: Output formatted text with ellipses replaced
Loading

Possibly related PRs

  • Add optional wrapping flag #38: Introduced optional wrapping flag and no-wrap variants in processing functions, closely related to the current PR’s expansion of processing options including ellipsis replacement.

Poem

Three dots march on, but now they blend,
Into a single mark—let ellipsis transcend!
Through code and text, with careful might,
The new flag brings this change to light.
Markdown tables smile anew,
With “…” replaced by “…”—thank you!


📜 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 5dc856a and 1a33ac3.

📒 Files selected for processing (2)
  • README.md (3 hunks)
  • tests/integration.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.md

Instructions used from:

Sources:
⚙️ CodeRabbit Configuration File

**/*.rs

Instructions used from:

Sources:
⚙️ CodeRabbit Configuration File

🔇 Additional comments (9)
README.md (4)

25-25: LGTM on command-line usage update.

The addition of [--ellipsis] to the usage synopsis correctly reflects the new optional flag.


35-37: LGTM on ellipsis option description.

The explanation clearly describes the functionality and behaviour of the --ellipsis option, including the left-to-right processing detail for longer runs.


68-77: LGTM on library usage example.

The example correctly demonstrates the new process_stream_opts function with properly labelled boolean arguments for clarity.


84-86: LGTM on API documentation.

The function signature and description accurately reflect the new process_stream_opts function with named boolean parameters.

tests/integration.rs (5)

956-966: LGTM on basic ellipsis test.

The test correctly verifies that three dots are replaced with the Unicode ellipsis character in normal text.


968-981: LGTM on code span preservation test.

The test properly verifies that ellipsis replacement does not occur inside inline code spans, preserving the original dots.


983-996: LGTM on fenced block preservation test.

The test correctly ensures that ellipsis replacement does not affect content within fenced code blocks.


998-1008: LGTM on long sequence handling test.

The test appropriately verifies that four dots become an ellipsis followed by a dot, demonstrating the left-to-right processing behaviour.


956-1008: Comprehensive test coverage for ellipsis functionality.

The integration tests effectively cover all documented behaviours of the --ellipsis option, including the edge cases requested in past reviews. The tests properly verify that ellipsis replacement works in normal text whilst preserving dots in code contexts.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/add-commandline-option-ellipsis

🪧 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 auto-generate unit tests to generate unit tests for 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.

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey @leynos - I've reviewed your changes and found some issues that need to be addressed.

  • Consider integrating the ellipsis replacement into the main processing pipeline (e.g. in process_stream) to avoid an extra buffer clone and make the order of transformations clearer.
  • It may be more robust to detect and replace three-or-more consecutive dots with a single regex rather than repeated string replacements within each token, which could simplify edge-case handling.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider integrating the ellipsis replacement into the main processing pipeline (e.g. in process_stream) to avoid an extra buffer clone and make the order of transformations clearer.
- It may be more robust to detect and replace three-or-more consecutive dots with a single regex rather than repeated string replacements within each token, which could simplify edge-case handling.

## Individual Comments

### Comment 1
<location> `tests/integration.rs:956` </location>
<code_context>
+mod tests {
+    use super::*;
+
+    #[test]
+    fn replaces_simple_text() {
+        let input = vec!["wait...".to_string()];
</code_context>

<issue_to_address>
Consider adding integration tests for edge cases, such as input with code spans or fenced code blocks.

Please add tests with code spans and fenced code blocks containing ellipses to verify the CLI preserves ellipses inside code.
</issue_to_address>

### Comment 2
<location> `src/ellipsis.rs:10` </location>
<code_context>
+
+/// Replace `...` with `` outside code spans and fences.
+#[must_use]
+pub fn replace_ellipsis(lines: &[String]) -> Vec<String> {
+    let mut out = Vec::with_capacity(lines.len());
+    let mut in_code = false;
</code_context>

<issue_to_address>
Consider refactoring to use a tokenizer that emits typed tokens for fences, code, and text, enabling a single-pass, flag-free ellipsis replacement.

Here’s one way to remove your manual fence‐tracking and per‐line cloning entirely by pushing both “fence” and “inline‐code” into your tokenizer.  Once your `tokenize_markdown` yields a small `enum Token { Fence(&str), Code(&str), Text(&str) }` you can rewrite `replace_ellipsis` in one pass over tokens:

1. Change your tokenizer to tag fences, code spans, and text:

```rust
// in crate::wrap

/// A markdown token that knows whether it’s a fence, inline‐code, or just text.
pub enum Token<'a> {
    Fence(&'a str),
    Code(&'a str),
    Text(&'a str),
}

/// Now handles both code‐spans and fence‐blocks for you.
/// (implementation folds in your old `is_fence` and inline‐code logic)
pub fn tokenize_markdown(input: &str) -> Vec<Token<'_>> {
    let mut out = Vec::new();
    let mut in_fence = false;
    for line in input.lines() {
        if line.starts_with("```") {
            in_fence = !in_fence;
            out.push(Token::Fence(line));
        } else if in_fence {
            out.push(Token::Fence(line));
        } else {
            // break this line into backtick‐wrapped vs plain slices…
            let mut rest = line;
            while let Some(pos) = rest.find('`') {
                if pos > 0 {
                    out.push(Token::Text(&rest[..pos]));
                }
                // find closing backtick
                let (backticked, rem) = match rest[pos+1..].find('`') {
                    Some(end) => (&rest[pos+1..pos+1+end], &rest[pos+2+end..]),
                    None      => (&rest[pos+1..], ""), 
                };
                out.push(Token::Code(backticked));
                rest = rem;
            }
            if !rest.is_empty() {
                out.push(Token::Text(rest));
            }
        }
    }
    out
}
```

2. Then collapse your outer loops into one simple map over tokens:

```rust
pub fn replace_ellipsis(lines: &[String]) -> Vec<String> {
    // join lines so fences spanning lines still work
    let doc = lines.join("\n");
    let mut out = String::with_capacity(doc.len());

    for token in tokenize_markdown(&doc) {
        match token {
            Token::Text(t) => out.push_str(&t.replace("...", "")),
            Token::Code(c) | Token::Fence(c) => {
                out.push_str(c);
                // re‐emit the backticks for code spans
                if let Token::Code(_) = token {
                    out.push('`');
                }
                out.push('\n');
            }
        }
    }
    // split back to per‐line Vec<String>
    out.lines().map(|l| l.to_string()).collect()
}
```

Benefits:

- No `in_code` flag or manual `is_fence` calls in `replace_ellipsis`.
- Single pass over a well‐typed `Token` enum.
- All functionality (inline spans, fenced blocks, ellipsis replacement) stays intact.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread tests/integration.rs
Comment thread src/ellipsis.rs
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a6ec333 and 2fb09e7.

📒 Files selected for processing (6)
  • README.md (2 hunks)
  • docs/module-relationships.md (2 hunks)
  • src/ellipsis.rs (1 hunks)
  • src/lib.rs (1 hunks)
  • src/main.rs (4 hunks)
  • tests/integration.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.rs

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • AGENTS.md

⚙️ CodeRabbit Configuration File

**/*.md

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • AGENTS.md

⚙️ CodeRabbit Configuration File

docs/**/*.md

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • AGENTS.md
  • docs/html-table-support.md
🧬 Code Graph Analysis (1)
src/ellipsis.rs (1)
src/wrap.rs (2)
  • is_fence (152-152)
  • tokenize_markdown (20-71)
🪛 LanguageTool
docs/module-relationships.md

[style] ~69-~69: Would you like to use the Oxford spelling “normalization”? The spelling ‘normalisation’ is also correct.
Context: ...es. The ellipsis module performs text normalisation. The process module provides streamin...

(OXFORD_SPELLING_Z_NOT_S)

🔇 Additional comments (8)
README.md (1)

25-25: Documentation updates are accurate and well-integrated.

The command-line usage and option descriptions correctly reflect the new ellipsis functionality. The formatting is consistent with existing documentation patterns.

Also applies to: 35-36

tests/integration.rs (1)

956-966: Integration test is well-implemented and comprehensive.

The test properly validates the end-to-end CLI behaviour for the new ellipsis option, following established patterns in the test suite.

docs/module-relationships.md (1)

35-38: Documentation accurately reflects the new module structure.

The Mermaid diagram and textual descriptions correctly document the ellipsis module and its relationships. The British spelling "normalisation" is correct per the coding guidelines specifying en-GB usage.

Also applies to: 54-54, 61-61, 69-71

src/main.rs (2)

41-43: CLI integration is correctly implemented.

The ellipsis flag is properly integrated with appropriate documentation and processing order. The placement after other transformations ensures code blocks remain protected.

Also applies to: 61-63


9-15: Reformat the import statement for consistency.

The multi-line import formatting is unnecessarily verbose. Format it more compactly to match existing patterns.

-use mdtablefix::{
-    ellipsis::replace_ellipsis,
-    format_breaks,
-    process_stream,
-    process_stream_no_wrap,
-    renumber_lists,
-};
+use mdtablefix::{
+    ellipsis::replace_ellipsis, format_breaks, process_stream, process_stream_no_wrap,
+    renumber_lists,
+};

Likely an incorrect or invalid review comment.

src/ellipsis.rs (3)

1-5: Excellent module documentation.

The module documentation clearly explains the purpose and key behaviour whilst adhering to the required //! format and en-GB spelling conventions.


6-10: Proper function signature and documentation.

The imports are appropriate, the #[must_use] attribute is correctly positioned after the doc comment, and the function signature follows Rust conventions.


11-34: Well-implemented ellipsis replacement logic.

The function efficiently handles both fenced code blocks and inline code spans whilst maintaining clean control flow. The pre-allocation and use of existing tokenization functionality demonstrates good performance considerations.

Comment thread src/lib.rs
Comment thread src/ellipsis.rs
@github-actions
Copy link
Copy Markdown

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jul 18, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (2)
src/ellipsis.rs (1)

48-105: Comprehensive test coverage addressing previous feedback.

The test suite covers all critical scenarios:

  • Basic ellipsis replacement
  • Code span preservation
  • Fenced block preservation
  • Long sequence handling with proper grouping
  • Empty input handling
  • Multiple fenced blocks

The handles_empty_input and handles_multiple_fenced_blocks tests directly address the suggestions from past review comments.

src/lib.rs (1)

30-30: Proper public re-export addressing previous feedback.

The replace_ellipsis function is correctly re-exported, making it available in the public API. This addresses the missing re-export identified in past review comments.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1d5dfc2 and 8fdc144.

📒 Files selected for processing (3)
  • README.md (3 hunks)
  • src/ellipsis.rs (1 hunks)
  • src/lib.rs (2 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.rs

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • AGENTS.md

⚙️ CodeRabbit Configuration File

**/*.md

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • AGENTS.md

⚙️ CodeRabbit Configuration File

🧬 Code Graph Analysis (1)
src/lib.rs (2)
src/ellipsis.rs (1)
  • replace_ellipsis (17-46)
src/process.rs (3)
  • process_stream (81-81)
  • process_stream_no_wrap (84-86)
  • process_stream_opts (89-91)
🪛 LanguageTool
README.md

[uncategorized] ~36-~36: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... Longer runs are processed left-to-right so leftover dots remain unchanged. - Use...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (6)
src/ellipsis.rs (3)

1-7: Excellent module documentation following Rust conventions.

The module documentation clearly explains the purpose, behaviour for long sequences, and preservation of code formatting.


8-14: Solid use of LazyLock for regex compilation.

The static regex with LazyLock ensures the pattern is compiled once and reused efficiently. The regex pattern correctly matches sequences of three or more dots.


15-46: Well-implemented ellipsis replacement with proper tokenisation.

The function correctly:

  • Handles empty input early
  • Uses tokenisation to preserve code formatting
  • Applies regex replacement only to text tokens
  • Reconstructs inline code spans with backticks
  • Preserves fenced code blocks unchanged

The replacement logic properly handles long sequences by converting groups of three dots to ellipsis characters and preserving remainder dots.

src/lib.rs (3)

9-9: Proper documentation update for the new module.

The ellipsis module description accurately reflects its purpose for normalising textual ellipses.


14-14: Correct module declaration following alphabetical ordering.

The ellipsis module is properly declared in the correct alphabetical position amongst other modules.


34-34: Enhanced process module exports for configuration options.

The addition of process_stream_opts to the public exports provides external callers with configurable wrapping and ellipsis replacement options, complementing the existing convenience functions.

Comment thread README.md
Comment thread README.md Outdated
@leynos
Copy link
Copy Markdown
Owner Author

leynos commented Jul 18, 2025

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jul 18, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 8fdc144 and 5dc856a.

📒 Files selected for processing (1)
  • README.md (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.md

Instructions used from:

Sources:
⚙️ CodeRabbit Configuration File

🔇 Additional comments (2)
README.md (2)

25-25: CLI synopsis correctly advertises the new flag
The command-line summary now lists --ellipsis, keeping the documentation in
sync with the binary’s behaviour.


35-37: Option description reads well and follows house style
Bullet is wrapped within 80 columns and avoids personal pronouns.

Comment thread README.md
Comment thread README.md Outdated
@leynos leynos merged commit 8918422 into main Jul 18, 2025
2 checks passed
@leynos leynos deleted the codex/add-commandline-option-ellipsis branch July 18, 2025 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant