Skip to content

Rollup of 3 PRs#155

Merged
JayanAXHF merged 15 commits into
mainfrom
rollup_2
Jun 28, 2026
Merged

Rollup of 3 PRs#155
JayanAXHF merged 15 commits into
mainfrom
rollup_2

Conversation

@JayanAXHF

Copy link
Copy Markdown
Owner

closes #151
closes #152
closes #153

dependabot Bot and others added 15 commits June 4, 2026 14:34
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.45.1 to 1.47.2.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.45.1...v1.47.2)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.47.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [termprofile](https://github.com/aschey/termprofile) from 0.2.2 to 0.2.3.
- [Release notes](https://github.com/aschey/termprofile/releases)
- [Changelog](https://github.com/aschey/termprofile/blob/main/CHANGELOG.md)
- [Commits](aschey/termprofile@v0.2.2...v0.2.3)

---
updated-dependencies:
- dependency-name: termprofile
  dependency-version: 0.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [nixpkgs](https://github.com/nixos/nixpkgs) from `46db2e0` to `1c3fe55`.
- [Commits](NixOS/nixpkgs@46db2e0...1c3fe55)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 1c3fe55ad329cbcb28471bb30f05c9827f724c76
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [vergen-gix](https://github.com/rustyhorde/vergen) from 10.0.0-beta.6 to 10.0.0-beta.8.
- [Release notes](https://github.com/rustyhorde/vergen/releases)
- [Commits](rustyhorde/vergen@10.0.0-beta.6...10.0.0-beta.8)

---
updated-dependencies:
- dependency-name: vergen-gix
  dependency-version: 10.0.0-beta.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.10 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](rustls/webpki@v/0.103.10...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.51.1 to 1.52.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](tokio-rs/tokio@tokio-1.51.1...tokio-1.52.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-version: 1.52.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [clap](https://github.com/clap-rs/clap) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.6.0...clap_complete-v4.6.1)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md)
- [Commits](rust-random/rand@0.8.5...0.8.6)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.8.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@JayanAXHF JayanAXHF merged commit 1dc563a into main Jun 28, 2026
7 of 8 checks passed
@greptile-apps

greptile-apps Bot commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This rollup combines three PRs: a hyperrat crate update migrating from the deprecated set_skip(bool) API to set_diff_option(CellDiffOption), an external-editor refactor that centralises editor lifecycle management in the top-level App instead of a fire-and-forget tokio::spawn, and a CI/infra pass that adds a Nix flake check workflow, installs native deps (libdbus-1-dev) in the bench jobs, and bumps actions/checkout to v7 across all workflows.

  • hyperrat/src/lib.rs: Replaces set_skip/cell.skip with set_diff_option(CellDiffOption); also changes the placeholder symbol stored in skip cells from \" \" to \"s\". Two tests were updated but contain incorrect assertions (see inline comments).
  • issue_conversation.rs: Removes the inline editor task that called ratatui::restore/ratatui::init directly; instead sends Action::OpenExternalEditor so the App manages the full terminal teardown/setup cycle.
  • CI workflows: Nix flake CI added; bench jobs now explicitly install native dependencies; actions/checkout standardised to v7.

Important Files Changed

Filename Overview
crates/hyperrat/src/lib.rs Migrates skip-cell API from set_skip(bool) to set_diff_option(CellDiffOption), but two test assertions were incorrectly updated: the tail-cell assertion was logically inverted and the skip-cell symbol expectation still says " " while the code now stores "s".
src/ui/components/issue_conversation.rs Moves external-editor session management out of the component and into the top-level App via an OpenExternalEditor action, removing the inline tokio::spawn that called ratatui::restore and ratatui::init directly. Clean refactor.
.github/workflows/bench.yml Bumps actions/checkout to v7 and adds an explicit Install native deps step (pkg-config, libdbus-1-dev) before running benchmarks.
.github/workflows/nix.yml New workflow that installs Nix and runs nix flake check on push and PRs. Functional, but has trailing whitespace on the steps: line.
.github/workflows/build.yml Bumps actions/checkout from v6 to v7; no other changes.
Cargo.toml Cleans up the clap version pin to match the resolved lock version (4.6.1); no other functional changes.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant IC as IssueConversation
    participant App as App (mod.rs)
    participant Pump as EventPump
    participant Editor as External Editor

    note over IC: User presses 'e' to edit
    IC->>App: "Action::OpenExternalEditor { issue_number, target, body }"
    App->>Pump: stop_event_pump()
    App->>App: ratatui::restore() + finish_teardown()
    App->>Editor: "spawn_blocking(edit::edit(&initial_body))"
    Editor-->>App: "Result<String, String>"
    App->>App: ratatui::init() + setup_terminal()
    App->>Pump: start_event_pump()
    App->>IC: Action::IssueBodyEditFinished / IssueCommentEditFinished
    App->>App: Action::ForceRender
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant IC as IssueConversation
    participant App as App (mod.rs)
    participant Pump as EventPump
    participant Editor as External Editor

    note over IC: User presses 'e' to edit
    IC->>App: "Action::OpenExternalEditor { issue_number, target, body }"
    App->>Pump: stop_event_pump()
    App->>App: ratatui::restore() + finish_teardown()
    App->>Editor: "spawn_blocking(edit::edit(&initial_body))"
    Editor-->>App: "Result<String, String>"
    App->>App: ratatui::init() + setup_terminal()
    App->>Pump: start_event_pump()
    App->>IC: Action::IssueBodyEditFinished / IssueCommentEditFinished
    App->>App: Action::ForceRender
Loading

Comments Outside Diff (2)

  1. crates/hyperrat/src/lib.rs, line 267-271 (link)

    P1 Inverted assertion during CellDiffOption migration

    The old assertion was assert!(!cell.skip) — meaning tail cells (beyond the rendered label width) must not be marked skip. The migration changed this to assert!(cell.diff_option == CellDiffOption::Skip), which is the logical opposite. Since clear_area_row explicitly sets every cell to CellDiffOption::None, these tail cells will always have None after a render, so this assertion will fail every time cargo test runs against the hyperrat crate.

  2. crates/hyperrat/src/lib.rs, line 253-258 (link)

    P1 Skip-cell symbol mismatch breaks the test assertion

    The OSC8 render path was updated to store "s" as the placeholder symbol in skip cells (cell.set_symbol("s")), replacing the previous " ". However, this test still asserts cell.symbol() == " " for those same cells. When osc8_supported() returns true (the common case in most test environments), cells at offsets 1..label_width will contain "s", causing the assertion to fail.

Reviews (1): Last reviewed commit: "Merge branch 'main' into rollup_2" | Re-trigger Greptile

Comment thread .github/workflows/nix.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest

steps:

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.

P2 Trailing whitespace on this line.

Suggested change
steps:
steps:

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@github-actions

Copy link
Copy Markdown

🐰 Bencher Report

Branchrollup_2
TestbedLinux

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds flag.

Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
issue_list_preview/repeat_1/120📈 view plot
⚠️ NO THRESHOLD
24.00 µs
issue_list_preview/repeat_1/40📈 view plot
⚠️ NO THRESHOLD
24.52 µs
issue_list_preview/repeat_1/80📈 view plot
⚠️ NO THRESHOLD
25.28 µs
issue_list_preview/repeat_12/120📈 view plot
⚠️ NO THRESHOLD
324.18 µs
issue_list_preview/repeat_12/40📈 view plot
⚠️ NO THRESHOLD
309.42 µs
issue_list_preview/repeat_12/80📈 view plot
⚠️ NO THRESHOLD
325.22 µs
issue_list_preview/repeat_32/120📈 view plot
⚠️ NO THRESHOLD
874.67 µs
issue_list_preview/repeat_32/40📈 view plot
⚠️ NO THRESHOLD
841.30 µs
issue_list_preview/repeat_32/80📈 view plot
⚠️ NO THRESHOLD
877.77 µs
issue_list_preview/repeat_4/120📈 view plot
⚠️ NO THRESHOLD
104.51 µs
issue_list_preview/repeat_4/40📈 view plot
⚠️ NO THRESHOLD
101.40 µs
issue_list_preview/repeat_4/80📈 view plot
⚠️ NO THRESHOLD
106.04 µs
markdown_render/repeat_1_indent_2/48📈 view plot
⚠️ NO THRESHOLD
564.89 µs
markdown_render/repeat_1_indent_2/80📈 view plot
⚠️ NO THRESHOLD
567.55 µs
markdown_render/repeat_1_indent_4/100📈 view plot
⚠️ NO THRESHOLD
564.47 µs
markdown_render/repeat_2_indent_2/48📈 view plot
⚠️ NO THRESHOLD
1,148.00 µs
markdown_render/repeat_2_indent_2/80📈 view plot
⚠️ NO THRESHOLD
1,147.00 µs
markdown_render/repeat_2_indent_4/100📈 view plot
⚠️ NO THRESHOLD
1,140.00 µs
markdown_render/repeat_6_indent_2/48📈 view plot
⚠️ NO THRESHOLD
3,472.20 µs
markdown_render/repeat_6_indent_2/80📈 view plot
⚠️ NO THRESHOLD
3,454.50 µs
markdown_render/repeat_6_indent_4/100📈 view plot
⚠️ NO THRESHOLD
3,449.10 µs
🐰 View full continuous benchmarking report in Bencher

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