summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about/showcase.md352
-rw-r--r--about/showcase/debroid/image-1.png58
2 files changed, 204 insertions, 206 deletions
diff --git a/about/showcase.md b/about/showcase.md
index 3904d278..3e057b6d 100644
--- a/about/showcase.md
+++ b/about/showcase.md
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-10-31
+Generated on: 2025-11-03
This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.
@@ -9,10 +9,9 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ Project Showcase](#project-showcase)
* [⇢ ⇢ Overall Statistics](#overall-statistics)
* [⇢ ⇢ Projects](#projects)
-* [⇢ ⇢ ⇢ yoga](#yoga)
* [⇢ ⇢ ⇢ conf](#conf)
+* [⇢ ⇢ ⇢ yoga](#yoga)
* [⇢ ⇢ ⇢ hexai](#hexai)
-* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ foostats](#foostats)
* [⇢ ⇢ ⇢ gitsyncer](#gitsyncer)
* [⇢ ⇢ ⇢ totalrecall](#totalrecall)
@@ -31,13 +30,14 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ docker-radicale-server](#docker-radicale-server)
* [⇢ ⇢ ⇢ terraform](#terraform)
* [⇢ ⇢ ⇢ gorum](#gorum)
-* [⇢ ⇢ ⇢ guprecords](#guprecords)
* [⇢ ⇢ ⇢ randomjournalpage](#randomjournalpage)
+* [⇢ ⇢ ⇢ geheim](#geheim)
* [⇢ ⇢ ⇢ sway-autorotate](#sway-autorotate)
* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
-* [⇢ ⇢ ⇢ geheim](#geheim)
* [⇢ ⇢ ⇢ algorithms](#algorithms)
+* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ perl-c-fibonacci](#perl-c-fibonacci)
+* [⇢ ⇢ ⇢ guprecords](#guprecords)
* [⇢ ⇢ ⇢ ioriot](#ioriot)
* [⇢ ⇢ ⇢ staticfarm-apache-handlers](#staticfarm-apache-handlers)
* [⇢ ⇢ ⇢ dyndns](#dyndns)
@@ -69,17 +69,39 @@ This page showcases my side projects, providing an overview of what each project
## Overall Statistics
* 📦 Total Projects: 56
-* 📊 Total Commits: 11,284
-* 📈 Total Lines of Code: 276,238
-* 📄 Total Lines of Documentation: 53,986
-* 💻 Languages: Go (31.0%), Java (14.6%), C++ (13.5%), Shell (7.7%), C/C++ (7.5%), C (7.3%), Perl (6.4%), HTML (4.6%), Config (1.7%), Ruby (1.0%), HCL (1.0%), YAML (0.7%), Make (0.7%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)
-* 📚 Documentation: Markdown (76.6%), Text (22.4%), LaTeX (0.9%)
-* 🎵 Vibe-Coded Projects: 4 out of 56 (7.1%)
-* 🤖 AI-Assisted Projects (including vibe-coded): 10 out of 56 (17.9% AI-assisted, 82.1% human-only)
-* 🚀 Release Status: 36 released, 20 experimental (64.3% with releases, 35.7% experimental)
+* 📊 Total Commits: 11,329
+* 📈 Total Lines of Code: 225,638
+* 📄 Total Lines of Documentation: 22,247
+* 💻 Languages: Go (38.0%), Java (17.9%), C (7.6%), C++ (7.5%), Perl (7.3%), C/C++ (5.4%), HTML (5.2%), Shell (2.7%), Config (1.6%), Ruby (1.3%), HCL (1.2%), YAML (0.8%), Python (0.7%), Make (0.6%), CSS (0.6%), Raku (0.3%), JSON (0.3%), XML (0.3%), Haskell (0.3%), TOML (0.1%)
+* 📚 Documentation: Text (50.5%), Markdown (49.5%)
+* 🎵 Vibe-Coded Projects: 5 out of 56 (8.9%)
+* 🤖 AI-Assisted Projects (including vibe-coded): 9 out of 56 (16.1% AI-assisted, 83.9% human-only)
+* 🚀 Release Status: 37 released, 19 experimental (66.1% with releases, 33.9% experimental)
## Projects
+### conf
+
+* 💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.6%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
+* 📚 Documentation: Text (69.4%), Markdown (30.6%)
+* 📊 Commits: 1031
+* 📈 Lines of Code: 6270
+* 📄 Lines of Documentation: 1440
+* 📅 Development Period: 2021-12-28 to 2025-11-02
+* 🔥 Recent Activity: 20.9 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🧪 Status: Experimental (no releases yet)
+
+
+This is a personal configuration management repository that centralizes infrastructure and application configurations across multiple environments. It serves as a single source of truth for system administration tasks, dotfiles, Docker deployments, and Kubernetes/Helm manifests, making it easier to maintain consistency across machines and deploy self-hosted services.
+
+The project is organized into distinct subdirectories: `dotfiles/` contains shell configurations (bash, fish), editor settings (helix, nvim), and window manager configs (sway, waybar); `f3s/` houses Kubernetes/Helm manifests for various self-hosted applications like Miniflux, FreshRSS, and Syncthing; `babylon5/` includes Docker startup scripts for services like Nextcloud, Vaultwarden, and Audiobookshelf; and `frontends/` and `playground/` for additional configurations. The repository uses Rex (a Perl-based deployment tool) as its automation framework, with a top-level Rexfile that includes subdirectory Rexfiles for modular task execution.
+
+[View on Codeberg](https://codeberg.org/snonux/conf)
+[View on GitHub](https://github.com/snonux/conf)
+
+---
+
### yoga
* 💻 Languages: Go (100.0%)
@@ -88,10 +110,10 @@ This page showcases my side projects, providing an overview of what each project
* 📈 Lines of Code: 3408
* 📄 Lines of Documentation: 82
* 📅 Development Period: 2025-10-01 to 2025-10-24
-* 🔥 Recent Activity: 24.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 26.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.3.0 (2025-10-24)
-* 🤖 AI-Assisted: This project was vibe-coded.
+* 🎵 Vibe-Coded: This project has been vibe coded
[![yoga screenshot](showcase/yoga/image-1.png "yoga screenshot")](showcase/yoga/image-1.png)
@@ -105,28 +127,6 @@ The implementation follows clean Go architecture with domain logic organized und
---
-### conf
-
-* 💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.5%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
-* 📚 Documentation: Text (69.4%), Markdown (30.6%)
-* 📊 Commits: 1026
-* 📈 Lines of Code: 6262
-* 📄 Lines of Documentation: 1440
-* 📅 Development Period: 2021-12-28 to 2025-10-31
-* 🔥 Recent Activity: 24.4 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🧪 Status: Experimental (no releases yet)
-
-
-This is a personal configuration management repository that centralizes infrastructure and application configurations across multiple environments. It serves as a single source of truth for system administration tasks, dotfiles, Docker deployments, and Kubernetes/Helm manifests, making it easier to maintain consistency across machines and deploy self-hosted services.
-
-The project is organized into distinct subdirectories: `dotfiles/` contains shell configurations (bash, fish), editor settings (helix, nvim), and window manager configs (sway, waybar); `f3s/` houses Kubernetes/Helm manifests for various self-hosted applications like Miniflux, FreshRSS, and Syncthing; `babylon5/` includes Docker startup scripts for services like Nextcloud, Vaultwarden, and Audiobookshelf; and `frontends/` and `playground/` for additional configurations. The repository uses Rex (a Perl-based deployment tool) as its automation framework, with a top-level Rexfile that includes subdirectory Rexfiles for modular task execution.
-
-[View on Codeberg](https://codeberg.org/snonux/conf)
-[View on GitHub](https://github.com/snonux/conf)
-
----
-
### hexai
* 💻 Languages: Go (69.5%), HTML (30.5%)
@@ -135,7 +135,7 @@ The project is organized into distinct subdirectories: `dotfiles/` contains shel
* 📈 Lines of Code: 26565
* 📄 Lines of Documentation: 564
* 📅 Development Period: 2025-08-01 to 2025-10-04
-* 🔥 Recent Activity: 38.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 40.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.15.1 (2025-10-03)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -152,36 +152,15 @@ The project is implemented as an LSP server written in Go, with a TUI component
---
-### foo.zone
-
-* 💻 Languages: Shell (74.7%), Go (24.9%), YAML (0.4%)
-* 📚 Documentation: Markdown (99.5%), Text (0.5%)
-* 📊 Commits: 3167
-* 📈 Lines of Code: 253
-* 📄 Lines of Documentation: 30185
-* 📅 Development Period: 2021-04-29 to 2025-10-29
-* 🔥 Recent Activity: 48.7 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🧪 Status: Experimental (no releases yet)
-* 🤖 AI-Assisted: This project was partially created with the help of generative AI
-
-
-foo.zone: source code repository.
-
-[View on Codeberg](https://codeberg.org/snonux/foo.zone)
-[View on GitHub](https://github.com/snonux/foo.zone)
-
----
-
### foostats
* 💻 Languages: Perl (100.0%)
-* 📚 Documentation: Markdown (54.4%), Text (45.6%)
-* 📊 Commits: 97
+* 📚 Documentation: Markdown (54.6%), Text (45.4%)
+* 📊 Commits: 98
* 📈 Lines of Code: 1902
-* 📄 Lines of Documentation: 421
-* 📅 Development Period: 2023-01-02 to 2025-10-21
-* 🔥 Recent Activity: 73.5 days (avg. age of last 42 commits)
+* 📄 Lines of Documentation: 423
+* 📅 Development Period: 2023-01-02 to 2025-11-01
+* 🔥 Recent Activity: 72.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.2.0 (2025-10-21)
@@ -197,15 +176,15 @@ The implementation uses a modular Perl architecture with specialized components:
### gitsyncer
-* 💻 Languages: Go (91.0%), Shell (7.4%), YAML (0.9%), JSON (0.6%)
+* 💻 Languages: Go (92.3%), Shell (7.3%), JSON (0.4%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 110
-* 📈 Lines of Code: 10036
-* 📄 Lines of Documentation: 2433
-* 📅 Development Period: 2025-06-23 to 2025-09-08
-* 🔥 Recent Activity: 98.5 days (avg. age of last 42 commits)
+* 📊 Commits: 113
+* 📈 Lines of Code: 10152
+* 📄 Lines of Documentation: 2431
+* 📅 Development Period: 2025-06-23 to 2025-10-31
+* 🔥 Recent Activity: 91.6 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
-* 🏷️ Latest Release: v0.9.2 (2025-09-08)
+* 🏷️ Latest Release: v0.10.1 (2025-10-31)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -226,7 +205,7 @@ The implementation uses a git remotes approach: it clones from one organization,
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 101.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 103.7 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.7.5 (2025-08-02)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -253,7 +232,7 @@ The project offers both a keyboard-driven GUI for interactive use and a CLI for
* 📈 Lines of Code: 931
* 📄 Lines of Documentation: 81
* 📅 Development Period: 2025-06-25 to 2025-10-18
-* 🔥 Recent Activity: 103.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 105.6 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.2.0 (2025-10-18)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -272,11 +251,11 @@ The architecture is straightforward: it's a Go-based CLI application that persis
* 💻 Languages: Go (99.8%), YAML (0.2%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 217
+* 📊 Commits: 218
* 📈 Lines of Code: 6168
-* 📄 Lines of Documentation: 162
-* 📅 Development Period: 2025-06-19 to 2025-10-05
-* 🔥 Recent Activity: 124.6 days (avg. age of last 42 commits)
+* 📄 Lines of Documentation: 164
+* 📅 Development Period: 2025-06-19 to 2025-11-02
+* 🔥 Recent Activity: 123.7 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.3 (2025-10-05)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -303,7 +282,7 @@ Under the hood, Task Samurai acts as a front-end wrapper that invokes the native
* 📈 Lines of Code: 13072
* 📄 Lines of Documentation: 680
* 📅 Development Period: 2024-01-18 to 2025-10-09
-* 🔥 Recent Activity: 139.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 142.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -330,7 +309,7 @@ The tool is implemented in Go and C, leveraging libbpfgo for BPF interaction. It
* 📈 Lines of Code: 4102
* 📄 Lines of Documentation: 357
* 📅 Development Period: 2024-05-04 to 2025-09-24
-* 🔥 Recent Activity: 163.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 165.3 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.0 (2025-09-24)
@@ -356,7 +335,7 @@ The implementation uses OAuth2 for LinkedIn authentication, stores configuration
* 📈 Lines of Code: 20091
* 📄 Lines of Documentation: 5674
* 📅 Development Period: 2020-01-09 to 2025-06-20
-* 🔥 Recent Activity: 166.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 168.9 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: v4.3.3 (2024-08-23)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -383,7 +362,7 @@ The architecture follows a client-server model where DTail servers run on target
* 📈 Lines of Code: 396
* 📄 Lines of Documentation: 24
* 📅 Development Period: 2025-04-18 to 2025-05-11
-* 🔥 Recent Activity: 185.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 188.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2025-05-11)
@@ -405,7 +384,7 @@ The tool reads host definitions from a YAML file specifying network interfaces (
* 📈 Lines of Code: 25762
* 📄 Lines of Documentation: 3101
* 📅 Development Period: 2008-05-15 to 2025-06-27
-* 🔥 Recent Activity: 199.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 201.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -430,7 +409,7 @@ The implementation follows a modular Java architecture with clear separation bet
* 📈 Lines of Code: 33
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2025-04-03 to 2025-04-03
-* 🔥 Recent Activity: 211.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 214.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -452,7 +431,7 @@ The implementation is intentionally straightforward, using Go's built-in testing
* 📈 Lines of Code: 1373
* 📄 Lines of Documentation: 48
* 📅 Development Period: 2024-12-05 to 2025-02-28
-* 🔥 Recent Activity: 252.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -474,7 +453,7 @@ The implementation centers around a DSL module that provides keywords like `file
* 📈 Lines of Code: 2285
* 📄 Lines of Documentation: 1180
* 📅 Development Period: 2021-05-21 to 2025-08-31
-* 🔥 Recent Activity: 297.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 300.2 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🏷️ Latest Release: 3.0.0 (2024-10-01)
@@ -496,7 +475,7 @@ The architecture leverages GNU utilities (sed, grep, date) and optional tools li
* 📈 Lines of Code: 1246
* 📄 Lines of Documentation: 211
* 📅 Development Period: 2023-04-17 to 2025-10-28
-* 🔥 Recent Activity: 498.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 500.5 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.1 (2025-10-27)
@@ -520,7 +499,7 @@ The architecture is straightforward: JSON configuration defines checks (plugin p
* 📈 Lines of Code: 1133
* 📄 Lines of Documentation: 78
* 📅 Development Period: 2024-01-20 to 2025-09-13
-* 🔥 Recent Activity: 518.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 520.8 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.0.4 (2025-09-13)
@@ -546,7 +525,7 @@ The implementation leverages Go's cross-compilation capabilities and Fyne's UI a
* 📈 Lines of Code: 40
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2023-12-31 to 2025-08-11
-* 🔥 Recent Activity: 552.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 554.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -568,7 +547,7 @@ The implementation uses Alpine Linux as the base image for a minimal footprint,
* 📈 Lines of Code: 2851
* 📄 Lines of Documentation: 52
* 📅 Development Period: 2023-08-27 to 2025-08-08
-* 🔥 Recent Activity: 588.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 590.6 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🧪 Status: Experimental (no releases yet)
@@ -590,7 +569,7 @@ The infrastructure uses a **modular, layered architecture** with separate Terraf
* 📈 Lines of Code: 1525
* 📄 Lines of Documentation: 15
* 📅 Development Period: 2023-04-17 to 2023-11-19
-* 🔥 Recent Activity: 815.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 817.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -605,28 +584,6 @@ The architecture consists of client/server components for inter-node communicati
---
-### guprecords
-
-* 💻 Languages: Raku (100.0%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 95
-* 📈 Lines of Code: 312
-* 📄 Lines of Documentation: 416
-* 📅 Development Period: 2013-03-22 to 2025-05-18
-* 🔥 Recent Activity: 865.3 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: v1.0.0 (2023-04-29)
-
-
-`guprecords` is a Raku-based command-line tool that aggregates uptime statistics from multiple hosts running `uptimed` into comprehensive global reports. It solves the problem of tracking and comparing system reliability across an entire infrastructure by collecting raw uptime records from individual machines (typically stored in a central git repository) and generating ranked leaderboards based on various metrics like total uptime, boot counts, downtime, lifespan, and a composite score. Users can generate reports across different categorizations (individual hosts, kernel versions, kernel families, or OS names) with output in multiple formats (plaintext, Markdown, or Gemtext).
-
-The implementation uses an object-oriented architecture with specialized classes: `Aggregator` processes raw uptimed records files, `Aggregate` and its subclasses (`HostAggregate`) model the aggregated data, and `Reporter` with `HostReporter` handle report generation using the `OutputHelper` role for formatting. The tool is designed for sysadmins managing multiple Unix-like systems (Linux, BSD, macOS) who want to track long-term stability trends, compare kernel performance, or simply maintain a "hall of fame" for their most reliable servers.
-
-[View on Codeberg](https://codeberg.org/snonux/guprecords)
-[View on GitHub](https://github.com/snonux/guprecords)
-
----
-
### randomjournalpage
* 💻 Languages: Shell (94.1%), Make (5.9%)
@@ -635,7 +592,7 @@ The implementation uses an object-oriented architecture with specialized classes
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2022-06-02 to 2024-04-20
-* 🔥 Recent Activity: 880.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 882.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -650,6 +607,28 @@ The implementation is a straightforward bash script using `qpdf` for PDF extract
---
+### geheim
+
+* 💻 Languages: Ruby (86.7%), Shell (13.3%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 74
+* 📈 Lines of Code: 822
+* 📄 Lines of Documentation: 106
+* 📅 Development Period: 2018-05-26 to 2025-11-01
+* 🔥 Recent Activity: 1093.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: v0.3.1 (2025-11-01)
+
+
+**geheim.rb** is a Ruby-based encrypted document management system that stores text and binary files in a Git repository with end-to-end encryption. It uses AES-256-CBC encryption with a PIN-derived initialization vector, encrypting both file contents and filenames while maintaining them in encrypted indices. The tool is designed for managing smaller sensitive files like text documents and PDFs with the security of encryption combined with Git's version control and distribution capabilities.
+
+The architecture leverages Git for storage and synchronization across multiple remote repositories (enabling geo-redundancy), integrates with `fzf` for fuzzy searching through encrypted indices, and provides a practical workflow with features like NeoVim integration for text editing (with security precautions like disabled caching), clipboard support for MacOS and GNOME, an interactive shell interface, and batch import/export capabilities. It's cross-platform (MacOS, Linux, Android via Termux) and designed for personal use where you need encrypted, version-controlled, and geo-distributed document storage with convenient search and editing workflows.
+
+[View on Codeberg](https://codeberg.org/snonux/geheim)
+[View on GitHub](https://github.com/snonux/geheim)
+
+---
+
### sway-autorotate
* 💻 Languages: Shell (100.0%)
@@ -658,7 +637,7 @@ The implementation is a straightforward bash script using `qpdf` for PDF extract
* 📈 Lines of Code: 41
* 📄 Lines of Documentation: 17
* 📅 Development Period: 2020-01-30 to 2025-04-30
-* 🔥 Recent Activity: 1173.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1175.9 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🧪 Status: Experimental (no releases yet)
@@ -680,7 +659,7 @@ The implementation uses a bash script that continuously monitors the `monitor-se
* 📈 Lines of Code: 342
* 📄 Lines of Documentation: 39
* 📅 Development Period: 2011-11-19 to 2022-04-02
-* 🔥 Recent Activity: 1393.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1395.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.5.0 (2022-02-21)
@@ -695,28 +674,6 @@ The architecture is straightforward and Unix-philosophy driven: users configure
---
-### geheim
-
-* 💻 Languages: Ruby (100.0%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 67
-* 📈 Lines of Code: 671
-* 📄 Lines of Documentation: 26
-* 📅 Development Period: 2018-05-26 to 2025-09-04
-* 🔥 Recent Activity: 1487.9 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🧪 Status: Experimental (no releases yet)
-
-
-**geheim.rb** is a Ruby-based encrypted document management system that stores text and binary files in a Git repository with end-to-end encryption. It uses AES-256-CBC encryption with a PIN-derived initialization vector, encrypting both file contents and filenames while maintaining them in encrypted indices. The tool is designed for managing smaller sensitive files like text documents and PDFs with the security of encryption combined with Git's version control and distribution capabilities.
-
-The architecture leverages Git for storage and synchronization across multiple remote repositories (enabling geo-redundancy), integrates with `fzf` for fuzzy searching through encrypted indices, and provides a practical workflow with features like NeoVim integration for text editing (with security precautions like disabled caching), clipboard support for MacOS and GNOME, an interactive shell interface, and batch import/export capabilities. It's cross-platform (MacOS, Linux, Android via Termux) and designed for personal use where you need encrypted, version-controlled, and geo-distributed document storage with convenient search and editing workflows.
-
-[View on Codeberg](https://codeberg.org/snonux/geheim)
-[View on GitHub](https://github.com/snonux/geheim)
-
----
-
### algorithms
* 💻 Languages: Go (99.2%), Make (0.8%)
@@ -725,7 +682,7 @@ The architecture leverages Git for storage and synchronization across multiple r
* 📈 Lines of Code: 1728
* 📄 Lines of Documentation: 18
* 📅 Development Period: 2020-07-12 to 2023-04-09
-* 🔥 Recent Activity: 1544.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1546.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -740,6 +697,26 @@ The project is implemented in Go 1.19+ with comprehensive unit tests and benchma
---
+### foo.zone
+
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 3195
+* 📈 Lines of Code: 0
+* 📄 Lines of Documentation: 23
+* 📅 Development Period: 2021-05-21 to 2022-04-02
+* 🔥 Recent Activity: 1562.2 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🧪 Status: Experimental (no releases yet)
+
+⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
+
+foo.zone: source code repository.
+
+[View on Codeberg](https://codeberg.org/snonux/foo.zone)
+[View on GitHub](https://github.com/snonux/foo.zone)
+
+---
+
### perl-c-fibonacci
* 💻 Languages: C (80.4%), Make (19.6%)
@@ -748,7 +725,7 @@ The project is implemented in Go 1.19+ with comprehensive unit tests and benchma
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 69
* 📅 Development Period: 2014-03-24 to 2022-04-23
-* 🔥 Recent Activity: 2025.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2027.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -761,6 +738,27 @@ perl-c-fibonacci: source code repository.
---
+### guprecords
+
+* 💻 Languages: Raku (100.0%)
+* 📊 Commits: 95
+* 📈 Lines of Code: 195
+* 📅 Development Period: 2013-03-22 to 2023-03-09
+* 🔥 Recent Activity: 2242.6 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: v1.0.0 (2023-04-29)
+
+⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
+
+`guprecords` is a Raku-based command-line tool that aggregates uptime statistics from multiple hosts running `uptimed` into comprehensive global reports. It solves the problem of tracking and comparing system reliability across an entire infrastructure by collecting raw uptime records from individual machines (typically stored in a central git repository) and generating ranked leaderboards based on various metrics like total uptime, boot counts, downtime, lifespan, and a composite score. Users can generate reports across different categorizations (individual hosts, kernel versions, kernel families, or OS names) with output in multiple formats (plaintext, Markdown, or Gemtext).
+
+The implementation uses an object-oriented architecture with specialized classes: `Aggregator` processes raw uptimed records files, `Aggregate` and its subclasses (`HostAggregate`) model the aggregated data, and `Reporter` with `HostReporter` handle report generation using the `OutputHelper` role for formatting. The tool is designed for sysadmins managing multiple Unix-like systems (Linux, BSD, macOS) who want to track long-term stability trends, compare kernel performance, or simply maintain a "hall of fame" for their most reliable servers.
+
+[View on Codeberg](https://codeberg.org/snonux/guprecords)
+[View on GitHub](https://github.com/snonux/guprecords)
+
+---
+
### ioriot
* 💻 Languages: C (55.5%), C/C++ (24.0%), Config (19.6%), Make (1.0%)
@@ -769,7 +767,7 @@ perl-c-fibonacci: source code repository.
* 📈 Lines of Code: 12420
* 📄 Lines of Documentation: 610
* 📅 Development Period: 2018-03-01 to 2020-01-22
-* 🔥 Recent Activity: 2566.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2569.1 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0.5.1 (2019-01-04)
@@ -794,7 +792,7 @@ The key advantage over traditional benchmarking tools is that it reproduces actu
* 📈 Lines of Code: 919
* 📄 Lines of Documentation: 12
* 📅 Development Period: 2015-01-02 to 2021-11-04
-* 🔥 Recent Activity: 3075.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3077.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.1.3 (2015-01-02)
@@ -817,7 +815,7 @@ Both handlers are implemented as Perl modules using Apache2's mod_perl API, conf
* 📈 Lines of Code: 18
* 📄 Lines of Documentation: 49
* 📅 Development Period: 2014-03-24 to 2021-11-05
-* 🔥 Recent Activity: 3311.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3313.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -840,7 +838,7 @@ The implementation uses a two-tier security architecture: SSH public key authent
* 📈 Lines of Code: 5360
* 📄 Lines of Documentation: 789
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3578.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3580.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.1 (2015-01-02)
@@ -863,7 +861,7 @@ Implemented in Perl, `mon` features automatic JSON backup before modifications (
* 📈 Lines of Code: 273
* 📄 Lines of Documentation: 32
* 📅 Development Period: 2015-09-29 to 2021-11-05
-* 🔥 Recent Activity: 3582.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3584.5 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0 (2015-10-26)
@@ -886,7 +884,7 @@ The tool is implemented as a lightweight Ruby script that prioritizes simplicity
* 📈 Lines of Code: 1839
* 📄 Lines of Documentation: 412
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3661.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3664.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2015-01-02)
@@ -904,12 +902,12 @@ The tool is implemented around a hierarchical configuration system (`/etc/pingdo
### gotop
* 💻 Languages: Go (98.0%), Make (2.0%)
-* 📚 Documentation: Text (50.0%), Markdown (50.0%)
+* 📚 Documentation: Markdown (50.0%), Text (50.0%)
* 📊 Commits: 57
* 📈 Lines of Code: 499
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2015-05-24 to 2021-11-03
-* 🔥 Recent Activity: 3672.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3674.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1 (2015-06-01)
@@ -930,7 +928,7 @@ The implementation uses a concurrent architecture with goroutines for data colle
* 📊 Commits: 670
* 📈 Lines of Code: 1675
* 📅 Development Period: 2011-03-06 to 2018-12-22
-* 🔥 Recent Activity: 3728.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3730.5 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2018-12-22)
@@ -953,7 +951,7 @@ The implementation follows strict OO Perl conventions with explicit typing and p
* 📈 Lines of Code: 88
* 📄 Lines of Documentation: 148
* 📅 Development Period: 2015-06-18 to 2015-12-05
-* 🔥 Recent Activity: 3776.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3778.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -978,7 +976,7 @@ The implementation uses a two-stage debootstrap process: first creating a Debian
* 📈 Lines of Code: 1681
* 📄 Lines of Documentation: 539
* 📅 Development Period: 2014-03-10 to 2021-11-03
-* 🔥 Recent Activity: 4054.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4056.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-11-17)
@@ -1001,7 +999,7 @@ The tool is implemented in Python and depends on the bigsuds library (F5's iCont
* 📈 Lines of Code: 65
* 📄 Lines of Documentation: 228
* 📅 Development Period: 2013-03-22 to 2021-11-04
-* 🔥 Recent Activity: 4108.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4111.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
@@ -1024,7 +1022,7 @@ The implementation uses a **Makefile-based build system** with targets for compi
* 📈 Lines of Code: 136
* 📄 Lines of Documentation: 96
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4121.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4124.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.2.0 (2014-07-05)
@@ -1047,7 +1045,7 @@ The architecture uses three components working together: a Vim plugin that provi
* 📈 Lines of Code: 134
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4129.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4131.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1.5 (2014-06-22)
@@ -1070,7 +1068,7 @@ The tool uses a clever client-server architecture where you run the identical co
* 📈 Lines of Code: 493
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2009-09-27 to 2021-11-02
-* 🔥 Recent Activity: 4172.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4174.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.9.3 (2014-06-14)
@@ -1093,7 +1091,7 @@ The architecture is lightweight and Unix-philosophy driven: password databases a
* 📈 Lines of Code: 286
* 📄 Lines of Documentation: 144
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4177.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4179.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.4.3 (2014-06-16)
@@ -1116,7 +1114,7 @@ Implemented in Perl using the JIRA::REST CPAN module, japi supports flexible con
* 📈 Lines of Code: 191
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2014-03-24 to 2014-03-24
-* 🔥 Recent Activity: 4238.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4241.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1137,7 +1135,7 @@ This project exemplifies creative coding where Perl keywords and constructs are
* 📊 Commits: 7
* 📈 Lines of Code: 80
* 📅 Development Period: 2011-07-09 to 2015-01-13
-* 🔥 Recent Activity: 4318.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4321.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1160,7 +1158,7 @@ The implementation uses a simple CGI script ([index.pl](file:///home/paul/git/gi
* 📈 Lines of Code: 124
* 📄 Lines of Documentation: 75
* 📅 Development Period: 2010-11-05 to 2021-11-05
-* 🔥 Recent Activity: 4359.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4361.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-06-22)
@@ -1183,7 +1181,7 @@ The implementation is remarkably simple: a shell script wrapper that invokes GNU
* 📈 Lines of Code: 1828
* 📄 Lines of Documentation: 100
* 📅 Development Period: 2010-11-05 to 2015-05-23
-* 🔥 Recent Activity: 4389.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4391.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.7.5 (2014-06-22)
@@ -1198,11 +1196,11 @@ loadbars: source code repository.
### perldaemon
-* 💻 Languages: Perl (74.2%), Shell (22.2%), Config (3.6%)
+* 💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)
* 📊 Commits: 110
-* 📈 Lines of Code: 659
+* 📈 Lines of Code: 614
* 📅 Development Period: 2011-02-05 to 2022-04-21
-* 🔥 Recent Activity: 4533.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4441.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.4 (2022-04-29)
@@ -1225,7 +1223,7 @@ The implementation centers around an event loop with configurable intervals that
* 📈 Lines of Code: 122
* 📄 Lines of Documentation: 10
* 📅 Development Period: 2011-01-27 to 2014-06-22
-* 🔥 Recent Activity: 4770.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4772.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.2 (2011-01-27)
@@ -1248,7 +1246,7 @@ The architecture is remarkably simple: a single AWK script ([index.cgi](file:///
* 📈 Lines of Code: 720
* 📄 Lines of Documentation: 6
* 📅 Development Period: 2008-06-21 to 2021-11-03
-* 🔥 Recent Activity: 4832.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4835.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.3 (2009-02-08)
@@ -1267,13 +1265,13 @@ The implementation is minimalistic, consisting of just three main Java classes (
### ychat
-* 💻 Languages: C++ (50.4%), Shell (21.3%), C/C++ (20.8%), Perl (2.3%), HTML (2.3%), Config (2.2%), Make (0.7%), CSS (0.1%)
+* 💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)
* 📚 Documentation: Text (100.0%)
* 📊 Commits: 67
-* 📈 Lines of Code: 73818
-* 📄 Lines of Documentation: 127
+* 📈 Lines of Code: 27104
+* 📄 Lines of Documentation: 109
* 📅 Development Period: 2008-05-15 to 2014-07-01
-* 🔥 Recent Activity: 5424.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5436.1 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
@@ -1296,7 +1294,7 @@ The architecture emphasizes speed and scalability through several key design cho
* 📈 Lines of Code: 17380
* 📄 Lines of Documentation: 947
* 📅 Development Period: 2009-02-07 to 2021-05-01
-* 🔥 Recent Activity: 5463.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5465.8 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: v0.1 (2009-02-08)
@@ -1321,7 +1319,7 @@ The key feature is its intelligent color-coded event visualization system that h
* 📊 Commits: 80
* 📈 Lines of Code: 601
* 📅 Development Period: 2009-11-22 to 2011-10-17
-* 🔥 Recent Activity: 5559.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5561.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1338,13 +1336,13 @@ The implementation uses a modular design with core components separated into Bas
### fype
-* 💻 Languages: C (72.1%), C/C++ (20.7%), HTML (5.7%), Make (1.5%)
-* 📚 Documentation: Text (71.3%), LaTeX (28.7%)
+* 💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)
+* 📚 Documentation: Text (100.0%)
* 📊 Commits: 99
-* 📈 Lines of Code: 10196
-* 📄 Lines of Documentation: 1741
-* 📅 Development Period: 2008-05-15 to 2021-11-03
-* 🔥 Recent Activity: 5720.8 days (avg. age of last 42 commits)
+* 📈 Lines of Code: 6450
+* 📄 Lines of Documentation: 516
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5691.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1366,7 +1364,7 @@ The implementation uses a simple top-down parser with maximum lookahead of 1, in
* 📈 Lines of Code: 0
* 📄 Lines of Documentation: 7
* 📅 Development Period: 2008-05-15 to 2015-05-23
-* 🔥 Recent Activity: 5920.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5922.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0 (2008-08-24)
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index 01791a86..ba4ff7fe 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -46,15 +46,15 @@
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-15839d47b75d.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-a5c85403da8c.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-4d11e88b2383.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-abde950b7df1.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-490b3f68bf33.css" />
- <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","billing_hide_expired_credits","billing_unfiltered_discounts","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_api_agentic_issue_marshal_yaml","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_deprecation_notice","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_read_shared_conversation","copilot_security_alert_assignee_options","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_skip_repo_on_codespace","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_copilot_cross_repo_assign","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","new_traffic_page_banner","open_agent_session_in_vscode_insiders","pinned_issue_fields","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","primer_react_use_styled_react_theming","react_fetch_graphql_validate_base_url","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
+ <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","billing_hide_expired_credits","billing_split_pru_skus","billing_split_pru_skus","billing_unfiltered_discounts","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_api_agentic_issue_marshal_yaml","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_deprecation_notice","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_read_shared_conversation","copilot_security_alert_assignee_options","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_skip_repo_on_codespace","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_copilot_cross_repo_assign","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","new_traffic_page_banner","open_agent_session_in_vscode_insiders","pinned_issue_fields","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","primer_react_use_styled_react_theming","react_fetch_graphql_validate_base_url","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-f3788027bd8d.js"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-dd05e17d2ff8.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-1cc776af0381.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-468bf7cab607.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-2f4e04-280c10ec004d.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-b4e74adb6411.js" defer="defer"></script>
@@ -67,7 +67,7 @@
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-d41270eb61be.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-777ce2-9ec8c103bf42.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-9e1d42c09c62.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-930bb28cf413.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-91c24873dcb9.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-f11c694928ba.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-9012bef51135.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-c1896e-ba47f43192a8.js" defer="defer"></script>
@@ -92,13 +92,13 @@
<meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
<meta name="route-controller" content="blob" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
- <meta name="fetch-nonce" content="v2:09eb41e3-fbfd-0d61-c038-e2d3cceb6134">
+ <meta name="fetch-nonce" content="v2:d5e91dbe-6cdd-6b84-df6c-8eec3d8186e8">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="DFFA:27CA4E:146A3FA:FE83C4:6904FC57" data-pjax-transient="true"/><meta name="html-safe-nonce" content="7fc606c1d37659c553402c95c07ce6617788912f6ab2dbe707ef631d46ffe03f" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERkZBOjI3Q0E0RToxNDZBM0ZBOkZFODNDNDo2OTA0RkM1NyIsInZpc2l0b3JfaWQiOiI3NTE1NDc1MzY0MTk0NjE0MzU5IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="4a8d8b0496cf77ebe1ebc5f42591393a37f2a5747dad41c6d54bc9f846497087" data-pjax-transient="true"/>
+ <meta name="request-id" content="ABF0:33AB88:150F4BB:110D954:69080BE8" data-pjax-transient="true"/><meta name="html-safe-nonce" content="98267c91378deb6d42ce9eabdd777741ded35fbb294947bfa8b34114bd7f6dfc" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQkYwOjMzQUI4ODoxNTBGNEJCOjExMEQ5NTQ6NjkwODBCRTgiLCJ2aXNpdG9yX2lkIjoiNjkyMTIwODE3OTk5MzM0OTA5NiIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="39b38857812d16c5ea2cace4f6d67d2803e20dd6c4b5de76d5beea8d88894bb1" data-pjax-transient="true"/>
@@ -174,10 +174,10 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="40852e3b167398de7a26c9fe93e7c81315070590220a27880fa1e885cad30e4e" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-version" content="9890aecdee21df493c1ea7e1fcff6415eb8cc0af6ed8c7ce9734fcd5fe65cf1a" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="21a43568025709b66240454fc92d4f09335a96863f8ab1c46b4a07f6a5b67102" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="db17983a8660cca1bcfb886ea9c8bce28168fbc3ffa26bbd0b6d1c04157a7fa8" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="c0cdf616cd37eba3887366c53c87a2209c098e5cd79618fe367b6564b4364642" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-css-version" content="64aa48ca69ddc4d1267863e96c8a5c11e0cb33842931f16e1441b54a84bcc1ad" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-js-version" content="b390268bacc1336925a16a0d32843839c3db64b65cf390fb0f19a7510eee3e4f" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
@@ -201,7 +201,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="af16da059434b21c3bfb0758acc88254ddaec47d">
+ <meta name="release" content="6f0a50c83824a7b7b3ed4ac8a758c063075591b0">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -229,7 +229,7 @@
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.45f06febf6dab702a065.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" />
<react-partial
@@ -294,13 +294,13 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-4ab683e2-e240-4d9a-96ec-4ed49523d4a8" aria-labelledby="tooltip-c2fa27fc-7166-4084-87a7-d49c2b0b8044" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" aria-labelledby="tooltip-55026fd4-974b-455f-a70b-74866c4e9b3f" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-c2fa27fc-7166-4084-87a7-d49c2b0b8044" for="icon-button-4ab683e2-e240-4d9a-96ec-4ed49523d4a8" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-55026fd4-974b-455f-a70b-74866c4e9b3f" for="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.45f06febf6dab702a065.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
@@ -1060,7 +1060,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="nyVxEtcuXpq5mcgAI-ErtVBgNrCTNjoPJIptuJ1zYpSmpTdHlEexFAGNf23EGQA-9AnBeQ7n2lfwyNLVWEIoHQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
+<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="H39UR3xE6Yi7LIQP0cU_3jwFLddyPikFr1RTHWRry1E-6iXZazxdrcmjd1h-EQambNUpSv58tGBvn6BZRBYHCQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
<div
class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded"
data-action="click:qbsearch-input#searchInputContainerClicked"
@@ -1124,7 +1124,7 @@
></div>
<div class="QueryBuilder-InputWrapper">
<div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div>
- <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-6ef094bf-eb3d-436b-a7dd-de75a6e913e0" data-target="query-builder.input" data-action="
+ <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1362,7 +1362,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-6ef094bf-eb3d-436b-a7dd-de75a6e913e0" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" hidden="hidden">
<span class="FormControl-inlineValidation--visual">
<svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill">
<path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path>
@@ -1403,7 +1403,7 @@
</div>
<scrollable-region data-labelled-by="feedback-dialog-title">
- <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="6gtNUXoTLbfv8Dqrt/8wpVhG2kqyhOfW0JNrwxKW7NU3ely1BkRzmktG+m8ZxZQD0pGafBl7nTP5idXCY3reFw==" />
+ <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="SprBCrqqI4A207YUc3P+bt4Qi6v/ygZbtkx1Y1yTkizGGaGVM5h21+Q9cSKAdbUBgUqcd2dcZvym6bRMB0kQwQ==" />
<p>We read every piece of feedback, and take your input very seriously.</p>
<textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea>
<input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox">
@@ -1441,7 +1441,7 @@
<div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="a9QJGa8zYXM2vz3bnus8i9WWaZTk+HkQ7P+xXihZ0CeSHjtjGinlw33lrJMiuRke4l2U+xAGA5JqEQIzE12f0A==" />
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="n+Eptz32xIX5zE2wImtLCWbTZ5wPmzUaFSnLSfF1WG52LjwVThWPjXd14wNw9VKwi8BFJc2izu2wAjSITtVYCA==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1459,7 +1459,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="2WpRDA2sB1JxE7Ezj4JKYr6ZvGd3M6wof0KlCFCObqt2GlmCYnmM2WTKlRFk8w233Fbc6MO/vqJI0rePTD6NGQ==" />
+ <input type="hidden" data-csrf="true" value="lMKxQqXGdLR8D9by9512UiffHAm99miZtrX63BNPOzlChH0XfX/Aq22IsbMwf2yUskiivEGbPJVZtgJSyn0/Mw==" />
</auto-check>
</div>
@@ -1514,7 +1514,7 @@
<h4 data-view-component="true" class="color-fg-default mb-2"> Sign in to GitHub
</h4>
-<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="JqJAB/wpPF5bHkWA8IPhO2jx5mN2fRUDzKsZK68nNI2SA9bC5QLOfWWB9XQQGcVB3gMwhpG8CT67pZ5u5FDaZA==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
+<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="lhDxKFqYG6JiizKbt3DrM9FOZrjqqKSC+wZTdAvdebg2TLibk+bI596Si11wPNyu4bKi0/2axOH2m9NSjGh48g==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1536,9 +1536,9 @@
<input type="hidden" name="allow_signup" id="allow_signup" autocomplete="off" class="form-control" />
<input type="hidden" name="client_id" id="client_id" autocomplete="off" class="form-control" />
<input type="hidden" name="integration" id="integration" autocomplete="off" class="form-control" />
-<input class="form-control" type="text" name="required_field_760d" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1761934424133" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="0031e9d68de59790f3401198b83faf5c2b6a2ffc8420f907f880539f8c136258" />
+<input class="form-control" type="text" name="required_field_759b" hidden="hidden" />
+<input class="form-control" type="hidden" name="timestamp" value="1762135017095" />
+<input class="form-control" type="hidden" name="timestamp_secret" value="4c46cad419fd18795908de5e87b0ec4a2520a01243eaf94cf05b9fe6cdb98c8d" />
<input type="submit" name="commit" value="Sign in" class="btn btn-primary btn-block js-sign-in-button" data-disable-with="Signing in…" data-signin-label="Sign in" data-sso-label="Sign in with your identity provider" development="false" disable-emu-sso="false" />
@@ -1565,13 +1565,13 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-bd962954-764f-412f-9054-4289fb16e119" aria-labelledby="tooltip-0a25e5d6-2b32-4aab-9389-6c2c29c65c1c" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" aria-labelledby="tooltip-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-0a25e5d6-2b32-4aab-9389-6c2c29c65c1c" for="icon-button-bd962954-764f-412f-9054-4289fb16e119" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" for="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.45f06febf6dab702a065.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
@@ -1606,10 +1606,10 @@
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
- <button id="icon-button-cc845c1e-7709-44b3-ac3a-2c9492bd8170" aria-labelledby="tooltip-2bfbcf6e-8883-41ad-9bd6-d96f29b31012" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
+ <button id="icon-button-259021ef-897f-41ab-a65b-1079b1e21f1c" aria-labelledby="tooltip-db96fde7-49b6-4d2c-aca0-3acda83c0892" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
-</button><tool-tip id="tooltip-2bfbcf6e-8883-41ad-9bd6-d96f29b31012" for="icon-button-cc845c1e-7709-44b3-ac3a-2c9492bd8170" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
+</button><tool-tip id="tooltip-db96fde7-49b6-4d2c-aca0-3acda83c0892" for="icon-button-259021ef-897f-41ab-a65b-1079b1e21f1c" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>