k4yt3x/video2x
A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018.
Single-maintainer risk — review before adopting
weakest axiscopyleft license (AGPL-3.0) — review compatibility; top contributor handles 91% of recent commits…
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
No critical CVEs, sane security posture — runnable as-is.
- ✓Last commit 2mo ago
- ✓7 active contributors
- ✓AGPL-3.0 licensed
Show all 7 evidence items →Show less
- ✓CI configured
- ⚠Single-maintainer risk — top contributor 91% of recent commits
- ⚠AGPL-3.0 is copyleft — check downstream compatibility
- ⚠No test directory detected
What would change the summary?
- →Use as dependency Concerns → Mixed if: relicense under MIT/Apache-2.0 (rare for established libs)
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Forkable" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/k4yt3x/video2x)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/k4yt3x/video2x on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: k4yt3x/video2x
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/k4yt3x/video2x shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
WAIT — Single-maintainer risk — review before adopting
- Last commit 2mo ago
- 7 active contributors
- AGPL-3.0 licensed
- CI configured
- ⚠ Single-maintainer risk — top contributor 91% of recent commits
- ⚠ AGPL-3.0 is copyleft — check downstream compatibility
- ⚠ No test directory detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live k4yt3x/video2x
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/k4yt3x/video2x.
What it runs against: a local clone of k4yt3x/video2x — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in k4yt3x/video2x | Confirms the artifact applies here, not a fork |
| 2 | License is still AGPL-3.0 | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 92 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of k4yt3x/video2x. If you don't
# have one yet, run these first:
#
# git clone https://github.com/k4yt3x/video2x.git
# cd video2x
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of k4yt3x/video2x and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "k4yt3x/video2x(\\.git)?\\b" \\
&& ok "origin remote is k4yt3x/video2x" \\
|| miss "origin remote is not k4yt3x/video2x (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(AGPL-3\\.0)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"AGPL-3\\.0\"" package.json 2>/dev/null) \\
&& ok "license is AGPL-3.0" \\
|| miss "license drift — was AGPL-3.0 at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "include/libvideo2x/libvideo2x.h" \\
&& ok "include/libvideo2x/libvideo2x.h" \\
|| miss "missing critical file: include/libvideo2x/libvideo2x.h"
test -f "include/libvideo2x/processor.h" \\
&& ok "include/libvideo2x/processor.h" \\
|| miss "missing critical file: include/libvideo2x/processor.h"
test -f "include/libvideo2x/processor_factory.h" \\
&& ok "include/libvideo2x/processor_factory.h" \\
|| miss "missing critical file: include/libvideo2x/processor_factory.h"
test -f "CMakeLists.txt" \\
&& ok "CMakeLists.txt" \\
|| miss "missing critical file: CMakeLists.txt"
test -f "include/libvideo2x/decoder.h" \\
&& ok "include/libvideo2x/decoder.h" \\
|| miss "missing critical file: include/libvideo2x/decoder.h"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 92 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~62d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/k4yt3x/video2x"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
Video2X is a C/C++ machine learning framework for real-time video super-resolution and frame interpolation using neural network models (Anime4K v4, Real-ESRGAN, Real-CUGAN, RIFE) via ncnn and Vulkan compute. It processes video files without intermediate disk space requirements, upscaling frames and interpolating missing frames for smoother, higher-quality output video. Monolithic C++ project: core library in include/libvideo2x/ (header files like avutils.h, conversions.h) with CMakeLists.txt as the build orchestrator; separate GUI application (Qt6-based, inferred from docs/book/src/building/windows-qt6.md) and CLI wrapper; GitHub Actions workflows in .github/workflows/ handle cross-platform builds and releases.
👥Who it's for
Video enthusiasts, anime fans, and content creators who need to upscale lower-resolution video (480p → 1080p) or increase frame rates (24fps → 60fps) using GPU-accelerated ML inference, with both CLI and Qt6-based GUI interfaces available.
🌱Maturity & risk
Production-ready and actively maintained. Version 6.4.0 represents a complete C/C++ rewrite (v5.x was Python-based), with established CI/CD pipelines (.github/workflows/build.yml, release.yml), cross-platform installers (.exe for Windows, AppImage for Linux), and documentation via mdBook (docs/book/). Last activity visible through recent releases and maintained GitHub workflows suggests active development.
Single-maintainer repository (k4yt3x) with large C++ codebase (151K lines) requiring AVX2 CPU and Vulkan GPU support—incompatible with older hardware. Build complexity spans CMake, vcpkg dependencies, and platform-specific toolchains (MSVC on Windows, GCC on Linux). Vulkan driver issues on some GPUs could cause runtime failures despite hardware support.
Active areas of work
Version 6.4.0 is the current stable release with Qt6 GUI redesign (docs/book/src/building/windows-qt6.md path suggests recent Qt migration from Qt5). Active maintenance visible through release.yml and build.yml workflows, with documentation in mdBook format under docs/book/src/ covering Linux/Windows building, CLI usage, and architecture docs (docs/book/src/developing/architecture.md).
🚀Get running
git clone --recursive https://github.com/k4yt3x/video2x.git
cd video2x
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
On Windows: requires MSVC 17+ and Vulkan SDK. On Linux: requires GCC 11+, libavformat-dev, libavutil-dev, and Vulkan headers.
Daily commands:
CLI: ./video2x --input video.mp4 --output output.mp4 --scale 2x --filter anime4k (inferred from docs/book/src/running/command-line.md). GUI: Launch the Qt6 application directly after build; GUI documented at docs/book/src/running/desktop.html. Docker: docker run -v $(pwd):/data video2x:latest --input /data/video.mp4 --output /data/output.mp4 (Dockerfile present).
🗺️Map of the codebase
include/libvideo2x/libvideo2x.h— Main public API header that defines the core library interface; essential for understanding the framework's entry points and component interactions.include/libvideo2x/processor.h— Core processor abstraction that orchestrates video processing pipeline; critical for understanding the main workflow and filter chain architecture.include/libvideo2x/processor_factory.h— Factory pattern implementation for creating processors; essential for understanding how different processing backends are instantiated and selected.CMakeLists.txt— Build configuration that defines the C/C++ compilation, dependencies, and project structure; every contributor must understand the build system.include/libvideo2x/decoder.h— Video decoding abstraction layer; critical for the input pipeline and understanding how video frames are extracted from source files.include/libvideo2x/encoder.h— Video encoding abstraction layer; essential for understanding the output pipeline and frame writing.docs/book/src/developing/architecture.md— High-level architectural documentation; provides context for contributors on how major components interact and fit together.
🛠️How to make changes
Add a new super-resolution filter
- Create a new filter header in include/libvideo2x/ (e.g., filter_mynewmodel.h) implementing the processor interface (
include/libvideo2x/filter_mynewmodel.h) - Implement the filter class following the pattern used in filter_realcugan.h and filter_realesrgan.h with process() and set_parameter() methods (
include/libvideo2x/filter_mynewmodel.h) - Register the new filter in processor_factory.h by adding a factory method and updating the processor type enum (
include/libvideo2x/processor_factory.h) - Add CMake build target in CMakeLists.txt to compile the new filter with required dependencies (
CMakeLists.txt) - Place pre-trained model files in models/ directory following the naming convention of existing models (
models/)
Add support for a new video codec
- Extend decoder.h with codec-specific initialization and frame extraction for the new format (
include/libvideo2x/decoder.h) - Implement the decoder for the new codec following avutils.h patterns for FFmpeg integration (
include/libvideo2x/avutils.h) - Update encoder.h to support encoding output in the new codec format (
include/libvideo2x/encoder.h) - Add codec validation and parameter mapping in processor.h processing pipeline (
include/libvideo2x/processor.h) - Update CMakeLists.txt to link against required codec libraries (
CMakeLists.txt)
Add a new command-line parameter
- Document the new parameter in docs/book/src/running/command-line.md with usage examples (
docs/book/src/running/command-line.md) - Add parameter parsing logic to the main application entry point (typically in the CLI frontend) (
.github/workflows/build.yml) - Pass the parameter through processor_factory to the appropriate processor implementation (
include/libvideo2x/processor_factory.h) - Implement parameter handling in the selected filter or processor using set_parameter() methods (
include/libvideo2x/processor.h)
Integrate a new logging destination
- Define new logging sink in logger_manager.h with appropriate log level filtering (
include/libvideo2x/logger_manager.h) - Implement the sink initialization and message routing following existing sink patterns (
include/libvideo2x/logger_manager.h) - Register the sink in processor.h to receive processing pipeline events and status updates (
include/libvideo2x/processor.h) - Add CMake configuration option in CMakeLists.txt to optionally enable/disable the new logging backend (
CMakeLists.txt)
🔧Why these technologies
- C/C++ — Provides high-performance processing critical for real-time video manipulation; enables efficient memory management and GPU integration via CUDA/OpenCL
- CMake — Cross-platform build system supporting Windows, Linux, and macOS; integrates seamlessly with multiple dependency management approaches
- FFmpeg/libav — Industry-standard codec library supporting 100+ video formats; abstracts away codec complexity and hardware acceleration details
- NCNN/ncnn Runtime — Lightweight inference framework optimized for mobile and embedded CPUs; enables efficient model inference for Real-CUGAN and Real-ESRGAN
- libplacebo — GPU-accelerated rendering library using Vulkan; enables high-quality Anime4K filtering with hardware acceleration
⚖️Trade-offs already made
-
Monolithic C/C++ library vs. microservice architecture
- Why: Video processing requires low-latency frame-by-frame handling; monolithic design minimizes IPC overhead and simplifies deployment
- Consequence: Tighter coupling between components but significantly faster processing (50-200ms per frame vs. potential 500ms+ for distributed systems)
-
Factory pattern for processor selection vs. dynamic plugin loading
- Why: Ensures type-safety and compile-time validation of filter availability; simplifies dependency management and versioning
- Consequence: Adding new filters requires CMake rebuild, but eliminates runtime plugin discovery failures and version mismatch issues
-
In-memory frame caching vs. disk-based temporary storage
- Why: Maximizes throughput by keeping hot frames in RAM; reduces I/O bottlenecks during sequential processing
- Consequence: Higher memory consumption for large resolutions (4K+ can require 2-4GB), requiring explicit cache size limits
-
Abstract decoder/encoder interfaces vs. FFmpeg-only
- Why: Allows future integration of hardware-specific codecs (NVENC, VideoToolbox) without core refactoring
- Consequence: Additional abstraction layer adds marginal latency but provides future codec flexibility
🪤Traps & gotchas
Vulkan requirement: GPU must support Vulkan; Intel integrated graphics older than HD Graphics 4000 (2012) will fail silently. AVX2 CPU requirement: Precompiled binaries require AVX2; CPUs older than Intel Haswell/AMD Excavator won't run without recompilation. FFmpeg licensing: GPL/LGPL implications if statically linking FFmpeg; check NOTICE file for compliance. Shader compilation: GLSL shaders (Anime4K v4) compile at runtime; malformed shader files won't error until first filter invocation. CUDA not supported: Despite NVIDIA GPU support, only Vulkan is used—no CUDA kernels, so expect slower inference than PyTorch on some models.
🏗️Architecture
💡Concepts to learn
- Vulkan Compute Shaders — Video2X uses Vulkan compute for GPU-accelerated neural network inference and GLSL filter execution; understanding compute shader invocation groups and shared memory is critical for shader-based filter implementation.
- YUV Color Space & Chroma Subsampling — Video codecs (H.264, H.265) use YUV 4:2:0 format; conversions.h must correctly convert between YUV and RGB for shader input, affecting output quality and color accuracy.
- Neural Network Quantization (Int8 Inference) — ncnn models (Real-ESRGAN, RIFE) use int8 quantization for faster GPU inference with minimal quality loss; understanding precision tradeoffs matters when debugging model selection.
- Frame Interpolation (Motion Estimation) — RIFE model estimates optical flow between frames to generate intermediate frames; understanding motion vectors and temporal coherence is essential for frame interpolation mode debugging.
- Zero-Copy Video Pipeline — Video2X claims 'zero additional disk space during processing'—requires pinned GPU memory and direct frame passing between FFmpeg decode, inference, and encode; memory mapping prevents intermediate file writes.
- CMake Find Modules & vcpkg Integration — Windows builds rely on vcpkg for dependency management (FFmpeg, ncnn, Vulkan SDK); understanding CMakeLists.txt find_package() order and vcpkg triplets is required for cross-platform builds.
- GLSL Runtime Shader Compilation — Anime4K v4 and custom shaders compile at runtime via Vulkan SPIR-V; shader validation errors occur during first filter execution, requiring shader debugging knowledge.
🔗Related repos
upscayl/upscayl— Cross-platform desktop GUI for Real-ESRGAN/Real-CUGAN upscaling; uses similar ncnn inference but Electron instead of Qt.philz1337x/clarity-upscaler— Another GUI-based super-resolution tool supporting multiple models; demonstrates alternative UI patterns for video processing workflows.ncnn/ncnn— Core dependency providing neural network inference engine with Vulkan compute support; understanding ncnn APIs essential for extending model support.FFmpeg/FFmpeg— Underlying multimedia library used for video I/O (libavformat, libavcodec, libavutil); dependency understanding required for frame pipeline troubleshooting.bloc97/Anime4K— Original GLSL shader filter for anime upscaling; v4 shaders are integrated as native filters in Video2X's pipeline.
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add comprehensive unit tests for libvideo2x core modules
The repo has extensive C/C++ headers in include/libvideo2x/ (decoder.h, encoder.h, filter_realcugan.h, interpolator_rife.h, processor.h, etc.) but no visible test directory. Given the critical nature of video processing pipelines, unit tests for core components would catch regressions early and improve code reliability. This is especially important for a v6.0.0 complete rewrite.
- [ ] Create tests/ directory structure mirroring include/libvideo2x/
- [ ] Add unit tests for decoder.h and encoder.h with mock video frames
- [ ] Add tests for processor.h and processor_factory.h to verify filter/interpolator instantiation
- [ ] Add tests for conversions.h color space conversion functions
- [ ] Integrate CMake test target and add test execution to build.yml GitHub Action
Document the libvideo2x C++ API with code examples in docs/book/
docs/book/src/developing/libvideo2x.md exists but the file structure suggests it may be minimal or incomplete. Given the major v6.0.0 rewrite to C/C++, there's a critical gap between API headers (avutils.h, filter_realcugan.h, interpolator_rife.h, etc.) and developer documentation. New contributors need clear examples of how to use libvideo2x as a library.
- [ ] Expand docs/book/src/developing/libvideo2x.md with sections for each major component
- [ ] Add code examples for basic decoder → processor → encoder pipeline
- [ ] Document filter configuration (filter_realesrgan.h, filter_realcugan.h, filter_libplacebo.h) with parameter examples
- [ ] Add examples for using processor_factory.h to instantiate different processors
- [ ] Create a 'Getting Started as a Library' subsection for C/C++ consumers
Add architecture validation tests in CI for libplacebo shader models
The repo includes libplacebo shader models in models/libplacebo/ (anime4k-v4-a.glsl, etc.) but there's no validation that these shaders are syntactically correct or that the build system properly bundles them. Given the move to v6.0.0, this is a concrete gap—shader compilation failures could break release builds silently.
- [ ] Create a CMake shader validation step that runs glslang or glslc on models/libplacebo/*.glsl
- [ ] Add a new CI job in .github/workflows/build.yml to validate shader compilation across Linux, Windows, and macOS
- [ ] Document shader model versioning and requirements in docs/book/src/developing/architecture.md
- [ ] Add a test to verify shader models are correctly embedded/referenced in the final binary
🌿Good first issues
- Add unit tests for include/libvideo2x/conversions.h (pixel format conversions YUV420p ↔ RGB24) in a src/tests/ directory; currently no test files visible in structure.
- Document build troubleshooting in docs/book/src/building/ (Windows vcpkg integration, Linux missing libavformat-dev errors); building pages exist but lack common failure scenarios.
- Implement --dry-run / --preview flag for CLI that outputs 1-2 frames without full encoding; roadmap inferred from architecture.md but feature not yet in command-line.md.
⭐Top contributors
Click to expand
Top contributors
- @k4yt3x — 91 commits
- @Integral-Tech — 3 commits
- @salmanmkc — 2 commits
- @mwp-foss — 1 commits
- @lbrunkho — 1 commits
📝Recent commits
Click to expand
Recent commits
7db9c18— fix(*): address nullptr deref and resource leaks (k4yt3x)4a8669b— chore(video2x): set default RIFE model to rife-v4.26 (k4yt3x)5909f62— ci(*): upgrade GitHub Actions for Node 24 compatibility (#1454) (salmanmkc)ce07604— ci(*): upgrade GitHub Actions to latest versions (#1455) (salmanmkc)8a9e571— feat(encoder): add separate audio/subtitle copy and recalculate PTS option (k4yt3x)f3df895— ci(build): update setup-vulkan-sdk to v1.2.1 (k4yt3x)d848db0— deps(rife): update librife-ncnn-vulkan to fix ncnn compatibility issues (k4yt3x)feb84c3— deps(ncnn): bump ncnn to 20250503 to fix black output frames on RADV (#1410) (mwp-foss)6bf0ee5— docs(readme): add hardware requirements (k4yt3x)4668556— docs(book): correct the renamed CLI arguments (k4yt3x)
🔒Security observations
The Video2X C/C++ project demonstrates reasonable security practices with a defined vulnerability disclosure policy and organized code structure. However, critical gaps exist: no dependency information was provided for verification, model files are stored in the repository without integrity checks, and security scanning practices are not evident. The project would benefit from: (1) comprehensive dependency management and automated scanning, (2) moving model files to external storage with checksum verification, (3) implementing GPG code signing, and (4) detailed security implementation guidance in documentation. The codebase appears to be a rewrite without obvious injection vulnerabilities in the visible structure, but full source code review would be needed to assess path traversal, buffer overflow, and memory safety issues in C/C++ components.
- Medium · Missing Dependency Information —
Repository root - missing dependency manifests. No package dependency file (package.json, requirements.txt, Pipfile, conan.txt, vcpkg.json, etc.) was provided for analysis. This prevents verification of dependency versions, known vulnerabilities, and transitive dependency security issues. The project appears to be C/C++ based on CMakeLists.txt, but dependency management files are not visible in the provided structure. Fix: Ensure dependency management files are properly maintained and regularly audited. Use tools like OWASP Dependency-Check, Snyk, or similar to scan for known vulnerabilities in all dependencies. Implement automated dependency scanning in CI/CD pipelines (note: build.yml workflow exists but content not provided). - Low · Gitmodules Dependency Management —
.gitmodules. The presence of .gitmodules indicates submodule dependencies. Without visibility into the submodule sources and versions, there's potential risk from compromised or outdated submodule repositories. Fix: Pin submodule commits to specific verified commits rather than branches. Regularly audit submodule sources and update them through a controlled process. Verify submodule integrity and GPG signatures where available. - Low · Model Files Security —
models/ directory (realcugan, libplacebo directories). Multiple pre-trained model files (*.bin, *.param, *.glsl) are committed to the repository. These binary files could potentially be modified or replaced during transport/download without detection, and consume significant repository size. Fix: Consider hosting model files separately from source code using a content delivery system. Implement checksum verification (SHA256) for all downloaded models. Use Git LFS (Large File Storage) for model files if they must remain in the repository. Sign releases with GPG. - Low · Incomplete Security Policy —
SECURITY.md. While SECURITY.md exists with responsible disclosure guidelines, the email address [github@k4yt3x.com] is a placeholder without verification. No mention of security headers, dependency scanning, or automated security tooling in visible configuration. Fix: Verify the security contact email address is monitored. Add details about: security scanning practices, minimum supported versions, security update cadence, and PGP key for encrypted submissions. - Low · No Evidence of Code Signing —
.github/workflows/release.yml (content not provided). While release.yml workflow exists, there's no visible indication of GPG signing releases or commits in the provided documentation. Fix: Implement GPG signing for all releases and tags. Provide public GPG keys in the repository. Document signature verification steps for users. Enable branch protection rules requiring signed commits. - Low · Potential Path Traversal Risk Surface —
include/libvideo2x/fsutils.h and encoder/decoder implementations. File system operations are evident from fsutils.h and video processing components. Without reviewing implementation details, path handling is a common vulnerability vector in multimedia processing applications. Fix: Review all file path operations to ensure proper input validation and canonicalization. Use safe path APIs and avoid concatenating user input directly to paths. Implement sandboxing for file operations. Validate that all file operations occur within intended directories.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.