sergey-tihon/vscode-openxml-explorer
48.4
Weak · 3 October 2026
799
lines of production code
F#
primary language
2
measurements over time
What this system is
This system is a VS Code extension and accompanying backend service designed to inspect and modify the internal structure of Open XML packages, such as Word, Excel, and PowerPoint documents. It exposes an API for parsing package relationships and manipulating part content, allowing users to browse, view, and edit these files directly within the editor. The solution integrates a .NET 10 server for data processing with a Node.js frontend for user interaction.
Features
Add OpenXML API server with Fable.Remoting
Introduces a new server component that exposes an API for inspecting and modifying OpenXML package structures (such as Office documents). The server uses Fable.Remoting for communication and System.IO.Packaging to parse package relationships, retrieve part content, and update part data. It includes health checks and application lifecycle management.
src/Server · high confidence
Initial release of the OpenXml Package Explorer extension
Introduces a new VS Code extension that allows users to browse, view, and edit the internal structure of Open XML packages (such as .docx, .xlsx, and .pptx). The extension registers a tree view provider to display documents and their constituent parts, supports opening part contents in the editor via a custom URI scheme, and enables saving changes back to the package. It operates by spawning a local .NET API server, automatically selecting a free port, and communicating with it via HTTP using Axios bindings. Key commands include exploring a package, closing packages, restarting the server, and opening specific resources.
src/extension · high confidence
Introduce shared data models and API contract for Open XML processing
A new shared library (src/Shared) has been added to define the core data structures and interface for the Open XML package parser. This includes the DocumentPart and Document types, which now include a Length field and support relationship IDs, as well as the IOpenXmlApi interface that specifies the contract for package info retrieval, part content manipulation, health checks, and application shutdown.
src/Shared · high confidence
Behavioural changes
Migration to .NET 10 and System.IO.Packaging v10
The application has been upgraded to target .NET 10, requiring users to have the .NET 10.0 Runtime installed. This change includes a corresponding update to the System.IO.Packaging library to version 10.0.1, ensuring compatibility with the new runtime environment.
(repo-wide) · high confidence
Test coverage
Added tests for OpenXML package structure parsing
Added a new test suite in \tests/Server.Tests/OpenXmlApi.Tests.fs\ that verifies the \OpenXmlApi.getPackageInfo\ function against sample Word, Excel, and PowerPoint files, including specific test cases for LibreOffice 6 formats. The commit also includes the corresponding snapshot verification files (\.verified.txt\) for these documents, ensuring the parsed package structure (URIs, relationship IDs, content types, and child parts) matches expected outputs.
tests · high confidence
Dependencies
Initial dependency setup for OpenXml Explorer extension
This change introduces the foundational dependency manifests for the OpenXml Explorer VS Code extension. It establishes a .NET backend targeting .NET 10.0 (with a shared project on netstandard2.0) using Fable.Remoting for server communication, and a Node.js frontend using Babel, Webpack, and Axios. The extension also declares a dependency on the \ms-dotnettools.vscode-dotnet-runtime\ extension to ensure the required .NET runtime is available.
(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 42 → 48 (+6.0)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 96 (new)
- Architecture 69 → 100 (+31.0)
- Maturity 29 → 29 (+0.0)
- Readiness 48 → 51 (+3.8)
- Security 63 → 65 (+2.2)
Resolved (2)
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
New (4)
- Duplicated block (11–12 lines × 4) (src/extension/Fable.Axios.fs)
- Duplicated block (12–13 lines × 3) (src/extension/Fable.Axios.fs)
- Duplicated block (5 lines × 3) (src/extension/Fable.Axios.fs)
- Duplicated block (7–9 lines × 5) (src/extension/Fable.Axios.fs)
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- Shared
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sergey-tihon/vscode-openxml-explorer 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 3852822dd4229bdc6568a41cb76de7abd0c7407e — 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.