ForNeVeR/Fenrir
61.8
Adequate · 3 October 2026
2.6k
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a .NET-based toolkit for interacting with Git repositories, comprising a low-level library for object parsing and pack file management, a modular UI framework, and a command-line application. It provides capabilities for initializing repositories, traversing commit histories, verifying data integrity, and browsing repository contents through a console interface. The project is structured as a modular solution targeting .NET 9, with comprehensive test coverage for core Git operations.
How it got here
2020 — Modular architecture and UI framework
8 changes.
The project underwent a significant structural reorganization, splitting the codebase into modular components and upgrading to .NET 9. This period also introduced the Fenrir.Ui.Framework with core infrastructure and controls, while simultaneously expanding the test suite to cover the refactored Git library operations.
2021–2025 — Core library and UI development
5 changes.
This period focused on establishing the foundational Fenrir.Git library for low-level repository operations and implementing a console-based UI for browsing refs, commits, and files. The work also included adding CLI commands for repository inspection and introducing CI scripts for version detection and file encoding validation.
Features
Initial release of Fenrir.Ui.Framework core infrastructure
This change introduces the foundational components of the Fenrir.Ui.Framework library, providing the base infrastructure for UI development. It includes a ViewModelBase class implementing INotifyPropertyChanged with support for property change notifications, a LoadableViewModelBase for managing loading states, and utility modules for handling asynchronous execution and property change events. Additionally, it adds console-specific initialization logic for Windows environments and a custom synchronization context to bridge async operations with the UI thread.
Fenrir.Ui.Framework · high confidence
Introduce Fenrir.Git library for low-level Git repository operations
The Fenrir.Git library is introduced, providing a comprehensive set of functions to interact with Git repositories at a low level. This includes capabilities to initialize new repositories, read and write commit objects, traverse commit histories, and manage Git references (including reading HEAD and packed refs). It also features efficient access to Git pack files via a new PackIndex implementation, support for verifying pack file integrity, and a hardened SHA-1 hashing module to ensure data integrity.
Fenrir.Git · high confidence
Introduce initial UI for browsing Git refs, commits, and files
The application now includes a basic console-based interface for navigating a Git repository. Users can view a list of refs (branches/tags), select a ref to see its associated commits, and select a commit to view its file tree. This is implemented via new ViewModel and XAML files for Refs, Commits, and Files, wired together in the application entry point to display three synchronized windows.
Fenrir.Application/Ui · high confidence
New BindableListBox and LoadableWrapper controls
Added two new UI controls to the framework: BindableListBox, which extends ListBox to propagate SelectedItemIndexChanged changes via property notifications, and LoadableWrapper, a container that displays a centered 'Loading…' placeholder while its content is unavailable and reveals the child control once loading is complete.
Fenrir.Ui.Framework/Controls · high confidence
New CI scripts for version detection and file encoding validation
Added two new PowerShell scripts to the CI pipeline: Get-Version.ps1 determines the project version by parsing git tags or falling back to Directory.Build.props, and Test-Encoding.ps1 enforces UTF-8 encoding without BOM and LF line endings across text files, with an optional autofix mode.
scripts · high confidence
New CLI commands and UI model for repository inspection
The application now exposes several new command-line operations for inspecting and modifying Git repositories, including \print-commits\ to list commit hashes and messages, \verify-pack\ to check pack file integrity, and \update-commit\ to modify a file within a specific commit. Additionally, the \ui\ command's underlying data access has been refactored into dedicated models (\GitRepositoryModel\, \TreeItemModel\) that handle asynchronous reading of refs, commits, and recursive tree structures, enabling the UI to present repository contents more efficiently.
Fenrir.Application · high confidence
Removals
Removal of Fenrir entry point
The main entry point for the Fenrir application has been removed, eliminating the previous startup behavior that printed the version string "Fenrir ver 0.0".
Fenrir · high confidence
Behavioural changes
Fenrir library v1.1.0 release with breaking API changes and bug fix
This release introduces significant breaking changes to the public API, including the introduction of \Fenrir.Git.Sha1Hash\ for hash values, \TruePath.LocalPath\ for file system paths, and a shift to asynchronous I/O operations. The API has been reorganized into new modules (\Commits\, \Objects\, \Trees\) with many functions renamed or moved, and several legacy modules (\Commands\, \DeltaCommands\, \Tools\, etc.) removed. A fix addresses an "Invalid hash" error when traversing repositories with multiple pack files. The project also updates its documentation structure, adds a contributor guide, and configures license compliance via REUSE.
(repo-wide) · high confidence
Test coverage
5 commits adding/updating tests in Fenrir.Tests/Data/objects; Added comprehensive test suite for Fenrir Git operations; Added test fixtures for Git reference structures.
Dependencies
Add docfx .NET global tool and license annotation
The project now includes the docfx documentation generator as a .NET global tool (version 2.81.0) via a new dotnet-tools.json configuration file, enabling local documentation generation. A corresponding license file has been added to annotate the MIT license for the new tool configuration.
.config · high confidence
Project structure reorganized and upgraded to .NET 9
The repository has been restructured from a single project into a modular solution: the core Git library is now in Fenrir.Git, the application entry point in Fenrir.Application, and tests in Fenrir.Tests. The main library and application targets .NET 9.0, while the UI framework targets .NET Standard 2.0. Key dependencies have been updated, including FSharp.Control.AsyncSeq to 4.15.0, JetBrains.Lifetimes to 2026.3.1, and Microsoft.NET.Test.Sdk to 18.10.1.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 62 → 62 (-0.7)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 87 → 87 (+0.0)
- Architecture 99 → 100 (+0.4)
- Maturity 48 → 48 (+0.0)
- Readiness 68 → 68 (+0.0)
- Security 74 → 69 (-5.2)
Resolved (3)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1
New (2)
- Documentation: no architecture or design documentation (docs/Application.md)
- Off-boarding risk: anonymized user #1
Changes since last survey
- 4 commits — 4 feature/other, 0 fixes
By area
- .config/dotnet-tools.json — 2 commits
- .github/workflows — 1 commit
- Fenrir.Git/Fenrir.Git.fsproj — 1 commit
Notable commits
- change: Update dependency JetBrains.Lifetimes to 2026.3.1
- change: Update dependency docfx to v2.80.1
- change: Update dependency docfx to v2.81.0
- change: Update dependency ubuntu to v26
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ForNeVeR/Fenrir was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bd6a0f5d9eab72ccf6a064d35f2215e7eed8c27d — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.