Skip to content

Releases: Bathur/CodexFileInspector

Codex File Inspector 0.3.0

Choose a tag to compare

@Bathur Bathur released this 06 Oct 02:30

Adds optional local Streamable HTTP alongside the existing STDIO transport. The same executable and four read-only tools support both modes; STDIO remains the default.

What's new

  • Optional HTTP startup. Use --transport http to listen at http://127.0.0.1:43127/mcp. --port <1-65535> selects another port. The listener binds only IPv4 loopback, has no authentication, and permits other local MCP clients. Host and supplied Origin values are validated against the configured loopback endpoint.
  • Manual double-click launcher. The complete binary directory includes Start-Http.bat beside the executable. Double-click it to start HTTP with the default port and diagnostics disabled. It locates the neighboring executable, accepts extra startup arguments, and pauses after the executable exits so messages remain visible. It does not install a service or autostart entry.
  • Both protocol eras. The official MCP SDK 2.2.0 supports initialize-era clients and MCP 2026-07-28 clients. Legacy HTTP sessions retain their cancellation notifications; current HTTP requests cancel when their response stream closes. Service shutdown cancels active work in either era.
  • Shared startup and tooling. Both transports use the same tool registration, schemas, result budgets, bundled ripgrep, and process cleanup. HTTP host configuration does not come from the caller's working-directory appsettings or environment settings. Normal HTTP request access logs are suppressed.

The read_file, grep, glob, and list_directory APIs and inspected-target read-only behavior are unchanged. Optional failure diagnostics still use --diagnostics, remain disabled by default, and record only final standard tool error or partial results. HTTP startup/protocol failures are outside that JSONL capture boundary; successful calls are not recorded.

Start HTTP

Extract the complete binary archive and double-click Start-Http.bat, or run:

.\CodexFileInspector.exe --transport http

Keep the service running and configure the MCP client's URL as http://127.0.0.1:43127/mcp. Use Ctrl+C to stop the foreground service. The client connects to the running service rather than starting it.

For a different port and optional failure diagnostics:

.\Start-Http.bat --port 43128 --diagnostics

Set the client's URL to the same port. Existing STDIO command configuration can continue to use the executable without a transport argument. See the included README for complete configuration and upgrade steps.

Distribution and upgrade

The Windows x64 build is framework-dependent and now requires both the .NET 10 x64 runtime and the ASP.NET Core 10 x64 runtime, including in STDIO mode. This is an additional runtime requirement for existing STDIO installations. No runtime installer or automatic global configuration change is included.

The binary archive includes ripgrep 15.2.0. Keep the complete extracted directory together, including the launcher, assemblies, bundled ripgrep, runtime assets, and license files. Binaries are unsigned.

  • CodexFileInspector-0.3.0-win-x64.zip
  • CodexFileInspector-0.3.0-source.zip
  • SHA256SUMS for the release archives

The matching source archive includes the source and build inputs. The four existing tools' known limitations remain, including parent ignore-rule isolation, bare-CR grep line semantics, and long search working directories; HTTP does not change these search behaviors. See the included DESIGN for details.

Validation

The exported public source built with zero warnings or errors and passed 423/423 Release tests. Both the published executable and the executable extracted into a separate directory passed 32/32 tests—19 STDIO and 13 HTTP—with no skipped tests. These builds and checks used the exported public source, separately from the earlier development build.

All 136 archive entries—111 source and 25 binary entries—were rehashed against the packaging inputs. Extracted files matched their verification records. The reviewed license inventory for four distributed runtime NuGet packages, all 11 relative documentation links, and release-hygiene checks passed.

Both protocol eras were checked for tool metadata and calls. Six lifecycle cases used real bundled ripgrep and Windows Jobs to verify explicit cancellation, shutdown, and the protocol-specific disconnect rules. The legacy cancellation test explicitly sends the standard cancellation notification.

Native cmd launcher checks covered a relocated package directory with spaces and !, an unrelated working directory, extra startup arguments, missing-executable handling, pause behavior, and preserved error exit codes. Those launcher checks were separate from the public-source full test run and did not add an HTTP JSONL disk-write test.

A user-installed HTTP configuration also passed a smoke check in the current Codex session: all four tools were directly visible and callable, read continuation worked, and a confirmed missing path returned the expected non-retryable error. The public package's core Server DLL matches the previously checked local build. The Host smoke itself did not independently establish the external installation's file hashes, negotiated protocol version, running-call cancellation, disconnect/shutdown behavior, or diagnostic file writes; it was not repeated as part of archive verification.

These are local verification results, not broad cross-machine certification or an independent security audit.

Codex File Inspector 0.2.8

Choose a tag to compare

@Bathur Bathur released this 23 Sep 07:07

This release improves everyday reading and search reliability, especially bounded reads, contextual pagination, error recovery, and short-lived ripgrep processes.

Improvements

  • More efficient bounded reads. Large requested ranges avoid repeatedly rebuilding oversized results, reducing temporary allocations. Cancellation is checked during output budgeting and before a successful read is returned.
  • Correct CRLF searches. Regex line anchors such as ^MATCH$ work with Windows CRLF text. Matching lines, context, counts, pagination, and subsequent read_file locations remain consistent for LF and CRLF files.
  • Reliable pagination. Grep trims context against the matches retained on the current page and preserves the same file order across whole and paginated results. A minimum result that cannot fit the output budget fails explicitly instead of returning an empty success page with a continuation that cannot advance.
  • Better failure classification. Already-observed traversal failures remain partial results even when a search stops early for pagination. Error-like words in filenames no longer turn valid searches into query errors. Invalid glob diagnostics identify the input item when it can be determined reliably.
  • Clearer invalid-input handling. Validation now covers undefined enum values, null required glob arrays, device-namespace separator variants, and command lines that grow too large after Windows argument escaping. Invalid Windows names are classified as path errors rather than transient I/O failures.
  • Useful recovery guidance. Unsupported lookaround and backreference queries explain the existing Rust regex limitation. Certain failed starts with a long working directory now include recovery guidance and discourage repeating the same request unchanged, while retaining the native error code and requested path. These messages do not add PCRE2 or automatically rewrite searches.
  • More robust process lifecycle handling. Short searches that finish before Windows Job assignment can have their real output processed under defined completion checks. Their actual exit codes remain significant even when buffered output is paginated. Running or unconfirmed unassigned processes and other Job failures still fail explicitly; failed-start cleanup attempts every release step without masking the original error.
  • Startup and instruction improvements. Unrelated project appsettings files no longer affect Server startup. Setup documentation offers two alternative consumer policies: MCP-first with practical Shell fallback, or autonomous selection between MCP and Shell. The user chooses and applies one; the Server does not edit user instructions.

The four tool APIs—read_file, grep, glob, and list_directory—and their structured result schemas are unchanged. Inspected files remain read-only. Optional failure diagnostics remain disabled by default, and successful calls are not logged.

Known limitations

  • Very long search roots can still exceed Windows process-start limits. Recovery guidance is a heuristic, not automatic long-path support. Searching from a shorter ancestor requires checking relative globs and ignore/hidden behavior; changing the root does not automatically preserve filtering semantics.
  • With ignore rules enabled, parent .gitignore, .ignore, or .rgignore rules outside the nearest repository can still influence searches. The ignore-source boundary has not been changed in this release.
  • Standalone CR line endings, including mixed files containing standalone CR, do not yet have fully consistent line positions and counts between grep and read_file. The CRLF improvement does not resolve this separate limitation.
  • Job assignment failures for running processes or other unsupported conditions remain explicit errors; completed-process handling is not a general bypass.

Distribution

The Windows x64 build is framework-dependent and requires the .NET 10 x64 runtime. It includes ripgrep 15.2.0. Keep the complete extracted directory together, including assemblies, runtime assets, bundled ripgrep, and license files. Binaries are unsigned.

  • CodexFileInspector-0.2.8-win-x64.zip
  • CodexFileInspector-0.2.8-source.zip
  • SHA256SUMS for the release archives

See the included README for installation, upgrade instructions, and the two consumer-policy templates.

Validation

The exported public source built with zero warnings or errors and passed 388/388 Release tests. Both the published executable and the executable extracted into a separate directory passed 19/19 STDIO tests, with no skipped tests.

All 155 archive entries—101 source and 54 binary entries—were rehashed against the packaging inputs. Extracted files matched their verification records. The runtime-license inventory for 32 packages, all 11 relative documentation links, and release-hygiene checks passed.

The core Server DLL is identical to the 0.2.8 build previously checked through 24 live Codex Host calls with expected outcomes, including intentional error cases. Those Host checks were not repeated as part of this archive-verification run.

Automated tests cover cancellation, but cancellation during a running live Codex Host call was not exercised. These are local verification results, not broad cross-machine certification or an independent security audit.

Codex File Inspector 0.2.5

Choose a tag to compare

@Bathur Bathur released this 10 Sep 12:13

Adds optional local failure diagnostics so failed tool calls can be investigated after an agent finishes its task.

What's new

  • Enable file logging with the --diagnostics startup argument; it is disabled by default.
  • Record final error and partial results with bound arguments, existing error/warning information, and already-caught exception details. Successful calls and failures outside the standard tool-result boundary are not recorded.
  • Write per-process JSONL files under the application's logs directory. A bounded background queue keeps tool results from waiting for disk writes. Logging is best effort and records may be dropped.
  • Bound records at 256 KiB with explicit truncation, rotate files at 8 MiB, and clean old closed diagnostic files toward a 128 MiB directory target. The target is not a strict cross-process quota.
  • Update README, DESIGN, and repository guidance for the new option.

The four tool APIs, model-visible results, and read-only inspection behavior are unchanged. Runtime dependencies remain pinned to the existing versions.

Enable diagnostics

Add the following to the existing [mcp_servers.codex_file_inspector] table, alongside command and before any per-tool tables:

args = ["--diagnostics"]

If an args array already exists, add the argument there. Restart Codex to apply it. Remove the argument and restart to disable future logging; existing files remain.

Logs include unredacted paths, queries, and exception details. Review their contents before sharing them. File logging does not collect read/search result bodies or guarantee complete reproduction evidence.

Distribution

Use the complete Windows x64 archive with the .NET 10 x64 runtime. Keep its assemblies, runtimes, bundled ripgrep, and license files together.

  • CodexFileInspector-0.2.5-win-x64.zip
  • CodexFileInspector-0.2.5-source.zip
  • SHA256SUMS for those two archives

The matching exported public source passed 201/201 Release tests. Both the published executable and the executable extracted from the Windows archive passed 8/8 STDIO tests. All 144 entries across the 90-file source archive and 54-file binary archive were rehashed against verified inputs, and the runtime license inventory matched all 32 packages. These are local verification results, not broad cross-machine certification or an independent security audit. Binaries are unsigned.

Codex File Inspector 0.2.4

Choose a tag to compare

@Bathur Bathur released this 08 Sep 03:15

Initial public release of Codex File Inspector, providing read_file, grep, glob, and list_directory as direct read-only tools for Codex on Windows.

  • Requires Windows x64, the .NET 10 x64 runtime, and Codex support for the documented STDIO MCP and direct-tool configuration.
  • Extract the complete binary archive and follow the README installation steps.
  • Release preparation passed 167 regression tests and 4 published-server STDIO tests covering both supported MCP protocol eras.
  • Tested on Windows 11 x64. Binaries are unsigned.

Original project code and documentation are licensed under GPL-3.0-only. Third-party components retain their own license terms. Matching source is included in the release assets.