feat: native image and PDF preview support#993
Open
abaj8494 wants to merge 741 commits intoalexpasmantier:mainfrom
Open
feat: native image and PDF preview support#993abaj8494 wants to merge 741 commits intoalexpasmantier:mainfrom
abaj8494 wants to merge 741 commits intoalexpasmantier:mainfrom
Conversation
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-node/releases">actions/setup-node's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <p><strong>Breaking Changes</strong></p> <ul> <li>Limit automatic caching to npm, update workflows and documentation by <a href="https://github.com/priyagupta108"><code>@priyagupta108</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1374">actions/setup-node#1374</a></li> </ul> <p><strong>Dependency Upgrades</strong></p> <ul> <li>Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes in v5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1336">#1336</a></li> <li>Upgrade prettier from 2.8.8 to 3.6.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1334">#1334</a></li> <li>Upgrade actions/publish-action from 0.3.0 to 0.4.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1362">#1362</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-node/compare/v5...v6.0.0">https://github.com/actions/setup-node/compare/v5...v6.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/setup-node/commit/2028fbc5c25fe9cf00d9f06a71cc4710d4507903"><code>2028fbc</code></a> Limit automatic caching to npm, update workflows and documentation (<a href="https://redirect.github.com/actions/setup-node/issues/1374">#1374</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/13427813f706a0f6c9b74603b31103c40ab1c35a"><code>1342781</code></a> Bump actions/publish-action from 0.3.0 to 0.4.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1362">#1362</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/89d709d423dc495668cd762a18dd4a070611be3f"><code>89d709d</code></a> Bump prettier from 2.8.8 to 3.6.2 (<a href="https://redirect.github.com/actions/setup-node/issues/1334">#1334</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/cd2651c46231bc0d6f48d6b34433b845331235fe"><code>cd2651c</code></a> Bump ts-jest from 29.1.2 to 29.4.1 (<a href="https://redirect.github.com/actions/setup-node/issues/1336">#1336</a>)</li> <li>See full diff in <a href="https://github.com/actions/setup-node/compare/v5...v6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
A channel to browse through tldr entries
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
## 📺 PR Description Television channel to browse and preview TLDR help pages for command-line tools This channel should work with any client that implements the '--list' option. In practice all official clients and other popular clients implement this recommended flag as specified in the client specification, https://github.com/tldr-pages/tldr/blob/main/CLIENT-SPECIFICATION.md ## Checklist - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
This aims to improve UX a bit by avoiding users having to manually pull channels on tv's first run.
…cess This aims to reduce flakyness in CI environments where machines can be a bit slower
## 📺 PR Description Channel for selecting television cable channels. I would prefer this channel to be builtin. This channel doesn't respect command line flags `--config-file` or `--cable-dir`. Instead it would be nice to allow immediate jump into the remote-control, for example, using `tv <ctrl-t>`. Nevertheless, the channel does the job. ## Checklist - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
This PR was created by a GitHub Action to update the changelog. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
This PR was created by a GitHub Action to update the changelog. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
…ntier#754) ## 📺 PR Description <!-- summary of the change + which issue is fixed if applicable. --> ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [X] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
This was causing garbled ui characters when result items containing ansi escape sequences also contained control characters/tabs/newlines/etc
This PR was created by a GitHub Action to update the changelog. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
fixes alexpasmantier#735 The problem seems to lie in interactive mode shells trying to reach the tty before tv initializes it resulting in a SIGTTOU. The fix simply delays that with a subshell which is kind of a hack but does seem to work consistently. Will need a more robust sync mechanism in the future.
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
This PR was created by a GitHub Action to update the changelog. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
Curly braces in commit messages (e.g. ${EDITOR:-}) cause Docusaurus
MDX compilation failures. Escape them in the current changelog and add
git-cliff postprocessors to prevent future occurrences.
Bump all website dependencies to latest versions, including major upgrades for @docsearch/react (3→4) and typescript (5.6→5.9). Fix SearchBar component for docsearch v4 API changes and escape <STRING> in patch-notes.md for MDX compatibility.
Add pnpm overrides to fix npm vulnerabilities in transitive deps: - serialize-javascript >=7.0.3 (RCE via RegExp.flags) - minimatch >=3.1.4 (ReDoS) Update Cargo.lock to fix Rust vulnerabilities: - time 0.3.44 → 0.3.47 (stack exhaustion DoS) - bytes 1.11.0 → 1.11.1 (integer overflow in BytesMut::reserve)
…xpasmantier#923) ## 📺 PR Description closes alexpasmantier#917 Persistence was not being called on the `execute` execution path, this should cover it ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
## 📺 PR Description It's not a good idea to assume everyone has uploaded an ssh-publickey to alexpasmantier's account. ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [x] I have added a reasonable amount of documentation to the code where appropriate
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
…lexpasmantier#933) `dump_context()` was deep-cloning the entire `MergedConfig` on every render frame. Now it clones an `Arc`.
## 📺 PR Description This PR closes alexpasmantier#940 ```bash echo aaaa\nwwww\neeee\nrrrr\ntttt\nyyyy | tv -- --select-1 --input 'a' ``` Running this command now automatically selects `aaaa` entry. The `--select-1` command now does so after `--input` is applied ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [x] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [x] I have added a reasonable amount of documentation to the code where appropriate
alexpasmantier#949) ## 📺 PR Description Fixes a panic in `previewer/state.rs` that occurred when `scroll` exceeded the actual number of lines in `content.lines`. The root cause was that `for_render_context` used `total_lines` to compute slice bounds, but `total_lines` and `content.lines.len()` can be out of sync (e.g. while a new preview is still loading). This caused: range start index 4906 out of range for slice of length 1 **Fix:** clamp `scroll` to the real content length and derive `num_lines` from `content.lines.len()` instead of `total_lines`. Fixes panic reported via human-panic in `television/previewer/state.rs:60`. ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [ x] my commits **and PR title** follow the [conventional commits]
…tier#952) ## Summary - Fix one-frame visual jitter where results shift horizontally when first appearing - Root cause: initial selection check read a stale `result_count()` before `channel.results()` updated it, causing entries to render without highlight-symbol spacing for one frame Fixes alexpasmantier#943
## 📺 PR Description <!-- summary of the change + which issue is fixed if applicable. --> Remove the redundant branch when assigning `INSTALL_DIR` in `install.sh`. ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
…lexpasmantier#953) ## Summary - The `--select-1` and `--take-1` selection tests were flaky because they used a single-shot raw output read after the 300ms spawn delay - The full pipeline (TUI start → source command → nucleo processing → channel finish → auto-select → exit) can exceed that delay, causing the test to read TUI escape sequences instead of the expected output - Switched all three auto-select tests to use `assert_raw_output_contains_with_timeout` with a 2s timeout and exponential backoff, matching the approach already used by `--take-1-fast` ## Test plan - [x] `cargo test --test command_line cli::selection -- --nocapture` — all 11 tests pass
…ows (alexpasmantier#946) ## 📺 PR Description <!-- summary of the change + which issue is fixed if applicable. --> when trying to print content of file paths that starts with '-' on windows, bat puts out this error: error: unexpected argument '-1' found tip: to pass '-1' as a value, use '-- -1' Usage: bat.exe [OPTIONS] [FILE]... bat.exe <COMMAND> For more information, try '--help'. <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [x] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [x] I have added a reasonable amount of documentation to the code where appropriate
## 📺 PR Description This PR introduced a new channel for tailscale users, it lists the available exit-nodes in your tailscale system, and on `enter` selects this as the desired exit node ## Checklist <!-- a quick pass through the following items to make sure you haven't forgotten anything --> - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [x] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [x] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [x] I have added a reasonable amount of documentation to the code where appropriate
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
## 📺 PR Description Adds four Podman channels mirroring the existing Docker channels, replacing `docker` with `podman` throughout: - **podman-containers** — list running and stopped containers; supports start, stop, restart, exec, follow logs, and remove actions - **podman-images** — list local images; supports run, open shell, and remove actions - **podman-volumes** — list volumes; supports remove and inspect actions - **podman-networks** — list networks; supports remove action Note: Podman's `network inspect` JSON uses lowercase keys (`name`, `driver`, `subnets`, `dns_enabled`) unlike Docker's capitalized equivalents — the preview jq filter accounts for this. ## Checklist - [x] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [ ] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [ ] I have added a reasonable amount of documentation to the code where appropriate
…antier#928) Bumps [crazy-max/ghaction-import-gpg](https://github.com/crazy-max/ghaction-import-gpg) from 6 to 7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crazy-max/ghaction-import-gpg/releases">crazy-max/ghaction-import-gpg's releases</a>.</em></p> <blockquote> <h2>v7.0.0</h2> <ul> <li>Node 24 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Actions Runner v2.327.1</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/241">crazy-max/ghaction-import-gpg#241</a></li> <li>Switch to ESM and update config/test wiring by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/239">crazy-max/ghaction-import-gpg#239</a></li> <li>Bump <code>@actions/core</code> from 1.11.1 to 3.0.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/232">crazy-max/ghaction-import-gpg#232</a></li> <li>Bump <code>@actions/exec</code> from 1.1.1 to 3.0.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/242">crazy-max/ghaction-import-gpg#242</a></li> <li>Bump brace-expansion from 1.1.11 to 1.1.12 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/221">crazy-max/ghaction-import-gpg#221</a></li> <li>Bump minimatch from 3.1.2 to 3.1.5 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/240">crazy-max/ghaction-import-gpg#240</a></li> <li>Bump openpgp from 6.1.0 to 6.3.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/233">crazy-max/ghaction-import-gpg#233</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v6.3.0...v7.0.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v6.3.0...v7.0.0</a></p> <h2>v6.3.0</h2> <ul> <li>Bump openpgp from 5.11.2 to 6.1.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/215">crazy-max/ghaction-import-gpg#215</a></li> <li>Bump cross-spawn from 7.0.3 to 7.0.6 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/212">crazy-max/ghaction-import-gpg#212</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v6.2.0...v6.3.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v6.2.0...v6.3.0</a></p> <h2>v6.2.0</h2> <ul> <li>Bump <code>@actions/core</code> from 1.10.1 to 1.11.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/209">crazy-max/ghaction-import-gpg#209</a></li> <li>Bump braces from 3.0.2 to 3.0.3 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/203">crazy-max/ghaction-import-gpg#203</a></li> <li>Bump ip from 2.0.0 to 2.0.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/196">crazy-max/ghaction-import-gpg#196</a></li> <li>Bump micromatch from 4.0.4 to 4.0.8 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/207">crazy-max/ghaction-import-gpg#207</a></li> <li>Bump openpgp from 5.11.0 to 5.11.2 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/205">crazy-max/ghaction-import-gpg#205</a></li> <li>Bump tar from 6.1.14 to 6.2.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/198">crazy-max/ghaction-import-gpg#198</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v6.1.0...v6.2.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v6.1.0...v6.2.0</a></p> <h2>v6.1.0</h2> <ul> <li>Bump <code>@actions/core</code> from 1.10.0 to 1.10.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/186">crazy-max/ghaction-import-gpg#186</a></li> <li>Bump <code>@babel/traverse</code> from 7.17.3 to 7.23.2 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/191">crazy-max/ghaction-import-gpg#191</a></li> <li>Bump debug from 4.1.1 to 4.3.4 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/190">crazy-max/ghaction-import-gpg#190</a></li> <li>Bump openpgp from 5.10.1 to 5.11.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/192">crazy-max/ghaction-import-gpg#192</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v6.0.0...v6.1.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v6.0.0...v6.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/2dc316deee8e90f13e1a351ab510b4d5bc0c82cd"><code>2dc316d</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/242">#242</a> from crazy-max/dependabot/npm_and_yarn/actions/exec-3...</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/5812792d2b1cde341f2ea75ce7ca7ba2d2f9d140"><code>5812792</code></a> chore: update generated content</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/ceb906ede8cacd6fd63677a4c35d8df2c42b6906"><code>ceb906e</code></a> build(deps): bump <code>@actions/exec</code> from 1.1.1 to 3.0.0</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/a9dffd930715a967060b1945ffb5a4ccd847e482"><code>a9dffd9</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/241">#241</a> from crazy-max/node24</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/36d49fcb3ce6996de4ea7013ab71d6bc03a00b04"><code>36d49fc</code></a> node 24 as default runtime</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/50c4e4f047b7ceb0acad3118559179fb10009d01"><code>50c4e4f</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/233">#233</a> from crazy-max/dependabot/npm_and_yarn/openpgp-6.3.0</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/c78fe49862245dc2ce48649309af68f2bdaa5758"><code>c78fe49</code></a> chore: update generated content</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/8dbbb1e8e50d7676574ffd644d8f1ea7a32fd0ea"><code>8dbbb1e</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/221">#221</a> from crazy-max/dependabot/npm_and_yarn/brace-expansio...</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/fc715b05fd639536a0a18c77c724056e4ffa9397"><code>fc715b0</code></a> build(deps): bump openpgp from 6.1.0 to 6.3.0</li> <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/99469162d0438cc32ec0ca8bc23d6a405bd28577"><code>9946916</code></a> build(deps): bump brace-expansion from 1.1.11 to 1.1.12</li> <li>Additional commits viewable in <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v6...v7">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
[//]: # (dependabot-start)⚠️ **Dependabot is rebasing this PR**⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pnpm/action-setup/releases">pnpm/action-setup's releases</a>.</em></p> <blockquote> <h2>v5.0.0</h2> <p>Updated the action to use Node.js 24.</p> <h2>v4.4.0</h2> <p>Updated the action to use Node.js 24.</p> <h2>v4.3.0</h2> <h2>What's Changed</h2> <ul> <li>docs: fix the run_install example in the Readme by <a href="https://github.com/dreyks"><code>@dreyks</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/175">pnpm/action-setup#175</a></li> <li>chore: remove unused <code>@types/node-fetch</code> dependency by <a href="https://github.com/silverwind"><code>@silverwind</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/186">pnpm/action-setup#186</a></li> <li>Clarify that package_json_file is relative to GITHUB_WORKSPACE by <a href="https://github.com/chris-martin"><code>@chris-martin</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/184">pnpm/action-setup#184</a></li> <li>feat: store caching by <a href="https://github.com/jrmajor"><code>@jrmajor</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/188">pnpm/action-setup#188</a></li> <li>refactor: remove star imports by <a href="https://github.com/KSXGitHub"><code>@KSXGitHub</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/196">pnpm/action-setup#196</a></li> <li>fix(ci): exclude macos by <a href="https://github.com/KSXGitHub"><code>@KSXGitHub</code></a> in <a href="https://redirect.github.com/pnpm/action-setup/pull/197">pnpm/action-setup#197</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/dreyks"><code>@dreyks</code></a> made their first contribution in <a href="https://redirect.github.com/pnpm/action-setup/pull/175">pnpm/action-setup#175</a></li> <li><a href="https://github.com/silverwind"><code>@silverwind</code></a> made their first contribution in <a href="https://redirect.github.com/pnpm/action-setup/pull/186">pnpm/action-setup#186</a></li> <li><a href="https://github.com/chris-martin"><code>@chris-martin</code></a> made their first contribution in <a href="https://redirect.github.com/pnpm/action-setup/pull/184">pnpm/action-setup#184</a></li> <li><a href="https://github.com/jrmajor"><code>@jrmajor</code></a> made their first contribution in <a href="https://redirect.github.com/pnpm/action-setup/pull/188">pnpm/action-setup#188</a></li> <li><a href="https://github.com/Boosted-Bonobo"><code>@Boosted-Bonobo</code></a> made their first contribution in <a href="https://redirect.github.com/pnpm/action-setup/pull/199">pnpm/action-setup#199</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pnpm/action-setup/compare/v4.2.0...v4.3.0">https://github.com/pnpm/action-setup/compare/v4.2.0...v4.3.0</a></p> <h2>v4.2.0</h2> <p>When there's a <code>.npmrc</code> file at the root of the repository, pnpm will be fetched from the registry that is specified in that <code>.npmrc</code> file <a href="https://redirect.github.com/pnpm/action-setup/pull/179">#179</a></p> <h2>v4.1.0</h2> <p>Add support for <code>package.yaml</code> <a href="https://redirect.github.com/pnpm/action-setup/pull/156">#156</a>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/pnpm/action-setup/compare/v4...v5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This PR was created by a GitHub Action to update the channel documentation. Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
Also fix MDX build: escape <STRING> in patch-notes and add cliff.toml postprocessor to prevent future occurrences.
Add inline image rendering in the preview pane using ratatui-image. When a selected entry is a recognized image file, tv now decodes and displays it natively using the terminal's graphics protocol (Kitty, iTerm2, Sixel) instead of shelling out to a preview command. Key changes: - Introduce PreviewContent enum (Text | Image) to support both modes - Detect image files by extension and decode via the image crate - Render images with ratatui-image StatefulImage + Picker - Cache per-entry protocol state to avoid re-encoding every frame - Detect graphics protocol from environment variables (KITTY_WINDOW_ID, TERM_PROGRAM, LC_TERMINAL) instead of terminal escape queries, which avoids conflicts with crossterm's raw mode event reader - Get font cell size via TIOCGWINSZ ioctl for accurate image scaling - Add native PDF preview by converting first page via pdftoppm - Support remote image/PDF URLs with download-to-cache for cable channels - Apply EXIF orientation metadata so photos display correctly rotated - Show "Loading..." indicator while preview generates - Add TERM=dumb to bat-using cable channels to prevent OSC 10/11 leaks - Switch files.toml preview from bat to tv-preview for broader support - Drain all event types in flush_existing_events(), not just keys - Use entry.output() for path detection to handle tab-separated entries New dependencies: ratatui-image, image, rustix (for ioctl)
Author
|
there is a |
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TERM=dumbto bat-using cable channels to prevent OSC 10/11 escape sequence leaksDetails
Image rendering
PreviewContentenum (Text | Image) to the preview systemimagecrate with EXIF orientation supportratatui-imageStatefulImagewith per-entry protocol state cachingKITTY_WINDOW_ID,TERM_PROGRAM,LC_TERMINAL) — no terminal escape queries, so no conflicts with crossterm's event readerTIOCGWINSZioctl for accurate image scalingPDF rendering
pdftoppm(from poppler-utils)Cable channel support
entry.output()for path detection to correctly handle tab-separated cable channel entriesfiles.tomlpreview frombattotv-previewfor broader format supportNew dependencies
ratatui-image— terminal image renderingimage— image decoding with EXIF supportrustix—tcgetwinsizeioctl for terminal pixel dimensionsTest plan
tv filesin a Kitty terminal and select an image file — should render inline